aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/OWNERS1
-rwxr-xr-xtools/autoroller/roll_chromium_revision.py10
-rw-r--r--tools/refactoring/addfileheader.py163
-rw-r--r--tools/refactoring/filemanagement.py72
-rw-r--r--tools/refactoring/fixincludeguards.py145
-rw-r--r--tools/refactoring/fixnames.py387
-rw-r--r--tools/refactoring/integratefiles.py100
-rw-r--r--tools/refactoring/p4commands.py31
-rw-r--r--tools/refactoring/removetrace.py161
-rw-r--r--tools/refactoring/stringmanipulation.py303
-rw-r--r--tools/refactoring/trim.py29
-rw-r--r--tools/refactoring/trimall.py59
-rwxr-xr-xtools/refactoring/webrtc_reformat.py212
-rw-r--r--tools/sslroots/generate_sslroots.py190
-rw-r--r--tools/valgrind-webrtc/drmemory/suppressions.txt35
-rw-r--r--tools/valgrind-webrtc/gtest_exclude/libjingle_peerconnection_unittest.gtest-drmemory_win32.txt2
-rw-r--r--tools/valgrind-webrtc/gtest_exclude/libjingle_peerconnection_unittest.gtest-memcheck.txt2
-rw-r--r--tools/valgrind-webrtc/gtest_exclude/modules_tests.gtest-drmemory.txt1
-rw-r--r--tools/valgrind-webrtc/gtest_exclude/rtc_unittests.gtest-drmemory.txt3
-rw-r--r--[-rwxr-xr-x]tools/valgrind-webrtc/gtest_exclude/system_wrappers_unittests.gtest-drmemory_win32.txt7
-rw-r--r--tools/valgrind-webrtc/gtest_exclude/video_engine_tests.gtest-drmemory_win32.txt13
-rw-r--r--tools/valgrind-webrtc/gtest_exclude/video_engine_tests.gtest-memcheck.txt2
-rw-r--r--tools/valgrind-webrtc/memcheck/suppressions.txt153
23 files changed, 215 insertions, 1866 deletions
diff --git a/tools/OWNERS b/tools/OWNERS
index 965de1e933..3a3f60ca73 100644
--- a/tools/OWNERS
+++ b/tools/OWNERS
@@ -1,4 +1,3 @@
kjellander@webrtc.org
phoglund@webrtc.org
niklas.enbom@webrtc.org
-andrew@webrtc.org
diff --git a/tools/autoroller/roll_chromium_revision.py b/tools/autoroller/roll_chromium_revision.py
index 917ecd6570..1f974e02ef 100755
--- a/tools/autoroller/roll_chromium_revision.py
+++ b/tools/autoroller/roll_chromium_revision.py
@@ -25,9 +25,6 @@ CHROMIUM_COMMIT_TEMPLATE = CHROMIUM_SRC_URL + '/+/%s'
CHROMIUM_LOG_TEMPLATE = CHROMIUM_SRC_URL + '/+log/%s'
CHROMIUM_FILE_TEMPLATE = CHROMIUM_SRC_URL + '/+/%s/%s'
-# Run these CQ trybots in addition to the default ones in infra/config/cq.cfg.
-EXTRA_TRYBOTS = 'tryserver.webrtc:win_baremetal,mac_baremetal,linux_baremetal'
-
COMMIT_POSITION_RE = re.compile('^Cr-Commit-Position: .*#([0-9]+).*$')
CLANG_REVISION_RE = re.compile(r'^CLANG_REVISION=(\d+)$')
ROLL_BRANCH_NAME = 'roll_chromium_revision'
@@ -38,14 +35,14 @@ CHECKOUT_ROOT_DIR = os.path.realpath(os.path.join(SCRIPT_DIR, os.pardir,
sys.path.append(CHECKOUT_ROOT_DIR)
import setup_links
-sys.path.append(os.path.join(CHECKOUT_ROOT_DIR, 'tools'))
+sys.path.append(os.path.join(CHECKOUT_ROOT_DIR, 'build'))
import find_depot_tools
find_depot_tools.add_depot_tools_to_path()
from gclient import GClientKeywords
-CLANG_UPDATE_SCRIPT_URL_PATH = 'tools/clang/scripts/update.sh'
+CLANG_UPDATE_SCRIPT_URL_PATH = 'tools/clang/scripts/update.py'
CLANG_UPDATE_SCRIPT_LOCAL_PATH = os.path.join('tools', 'clang', 'scripts',
- 'update.sh')
+ 'update.py')
DepsEntry = collections.namedtuple('DepsEntry', 'path url revision')
ChangedDep = collections.namedtuple('ChangedDep',
@@ -292,7 +289,6 @@ def GenerateCommitMessage(current_cr_rev, new_cr_rev, current_commit_pos,
commit_msg.append('No update to Clang.\n')
commit_msg.append('TBR=%s' % tbr_authors)
- commit_msg.append('CQ_EXTRA_TRYBOTS=%s' % EXTRA_TRYBOTS)
return '\n'.join(commit_msg)
diff --git a/tools/refactoring/addfileheader.py b/tools/refactoring/addfileheader.py
deleted file mode 100644
index 01c8a8b4e1..0000000000
--- a/tools/refactoring/addfileheader.py
+++ /dev/null
@@ -1,163 +0,0 @@
-#!/usr/bin/env python
-
-import stringmanipulation
-import filemanagement
-import sys
-
-extensions = ['.h','.cc','.c','.cpp']
-
-ignore_these = ['my_ignore_header.h']
-
-if((len(sys.argv) != 2) and (len(sys.argv) != 3)):
- print 'parameters are: directory [--commit]'
- quit()
-
-directory = sys.argv[1];
-if(not filemanagement.pathexist(directory)):
- print 'path ' + directory + ' does not exist'
- quit()
-
-if((len(sys.argv) == 3) and (sys.argv[2] != '--commit')):
- print 'parameters are: parent directory extension new extension [--commit]'
- quit()
-
-commit = False
-if(len(sys.argv) == 3):
- commit = True
-
-files_to_fix = []
-for extension in extensions:
- files_to_fix.extend(filemanagement.listallfilesinfolder(directory,\
- extension))
-
-# Just steal the header from the template
-def fileheaderasstring():
- template_file_name = 'license_template.txt'
- if (not filemanagement.fileexist(template_file_name)):
- print 'File ' + template_file_name + ' not found!'
- quit()
- template_file = open(template_file_name,'r')
- return_string = ''
- for line in template_file:
- return_string += line
- return return_string
-
-# Just steal the header from the template
-def fileheaderasarray():
- template_file_name = 'license_template.txt'
- if (not filemanagement.fileexist(template_file_name)):
- print 'File ' + template_file_name + ' not found!'
- quit()
- template_file = open(template_file_name,'r')
- return_value = []
- for line in template_file:
- return_value.append(line)
- return return_value
-
-
-def findheader(path, file_name):
- full_file_name = path + file_name
- if (not filemanagement.fileexist(full_file_name)):
- print 'File ' + file_name + ' not found!'
- print 'Unexpected error!'
- quit()
- file_handle = open(full_file_name)
- template_file_content = fileheaderasarray()
- compare_content = []
- # load the same number of lines from file as the fileheader
- for index in range(len(template_file_content)):
- line = file_handle.readline()
- if (line == ''):
- return False
- compare_content.append(line)
-
- while (True):
- found = True
- for index in range(len(template_file_content)):
- line1 = template_file_content[index]
- line2 = compare_content[index]
- if(line1 != line2):
- found = False
- break
- if (found):
- return True
- compare_content = compare_content[1:len(compare_content)]
- line = file_handle.readline()
- if (line == ''):
- return False
- compare_content.append(line)
- return False
-
-# Used to store temporary result before flushing to real file when finished
-def temporaryfilename(old_file_name):
- return old_file_name + '.deleteme'
-
-def updatefile(path, old_file_name):
- full_old_file_name = path + old_file_name
- if (not filemanagement.fileexist(full_old_file_name)):
- print 'File ' + full_old_file_name + ' is not found.'
- print 'Should not happen! Ever!'
- quit()
-
- full_temporary_file_name = path + temporaryfilename(old_file_name)
-
- # Make sure that the files are closed by putting them out of scope
- old_file = open(full_old_file_name,'r')
- temporary_file = open(full_temporary_file_name,'w')
-
- temporary_file.writelines(fileheaderasstring())
- remove_whitespaces = True
- for line in old_file:
- if (remove_whitespaces and (len(line.split()) == 0)):
- continue
- else:
- remove_whitespaces = False
- temporary_file.writelines(line)
- old_file.close()
- temporary_file.close()
-
- filemanagement.copyfile(full_old_file_name,full_temporary_file_name)
- filemanagement.deletefile(full_temporary_file_name)
-
-
-failed_files = []
-skipped_files = []
-for index in range(len(files_to_fix)):
- if(commit):
- print (100*index)/len(files_to_fix)
- path_dir = files_to_fix[index][0]
- filename = files_to_fix[index][1]
- is_ignore = False
- for ignore_names in ignore_these:
- if(filename == ignore_names):
- is_ignore = True
- break
- if(is_ignore):
- continue
-
-# Let the word copyright be our sanity, i.e. make sure there is only one
-# copy right occurance or report that there will be no change
- if(filemanagement.findstringinfile(path_dir,filename,'Copyright') or
- filemanagement.findstringinfile(path_dir,filename,'copyright') or
- filemanagement.findstringinfile(path_dir,filename,'COPYRIGHT')):
- if(findheader(path_dir,filename)):
- skipped_files.append(path_dir + filename)
- else:
- failed_files.append(path_dir + filename)
- continue
-
- if (not commit):
- print 'File ' + path_dir + filename + ' will be updated'
- continue
- updatefile(path_dir,filename)
-
-tense = 'will be'
-if (commit):
- tense = 'has been'
-if (len(skipped_files) > 0):
- print str(len(skipped_files)) + ' file(s) ' + tense + ' skipped since they already have the correct header'
-
-if (len(failed_files) > 0):
- print 'Following files seem to have an invalid file header:'
-for line in failed_files:
- print line
diff --git a/tools/refactoring/filemanagement.py b/tools/refactoring/filemanagement.py
deleted file mode 100644
index 4ff64ceb22..0000000000
--- a/tools/refactoring/filemanagement.py
+++ /dev/null
@@ -1,72 +0,0 @@
-import fnmatch
-import os
-import stringmanipulation
-
-def fileexist( file_name ):
- return os.path.isfile(file_name)
-
-def pathexist( path ):
- return os.path.exists(path)
-
-def fixpath( path ):
- return_value = path
- if( return_value[len(return_value) - 1] != '/'):
- return_value = return_value + '/'
- return return_value
-
-def listallfilesinfolder( path, extension ):
- matches = []
- signature = '*' + extension
- for root, dirnames, filenames in os.walk(path):
- for filename in fnmatch.filter(filenames, signature):
- matches.append([fixpath(root), filename])
- return matches
-
-def copyfile(to_file, from_file):
- if(not fileexist(from_file)):
- return
- command = 'cp -f ' + from_file + ' ' + to_file
- os.system(command)
- #print command
-
-def deletefile(file_to_delete):
- if(not fileexist(file_to_delete)):
- return
- os.system('rm ' + file_to_delete)
-
-# very ugly but works, so keep for now
-def findstringinfile(path,file_name,search_string):
- command = 'grep \'' + search_string + '\' ' + path + file_name + ' > deleteme.txt'
- return_value = os.system(command)
-# print command
- return (return_value == 0)
-
-def replacestringinfolder( path, old_string, new_string, extension ):
- if(not stringmanipulation.isextension(extension)):
- print 'failed to search and replace'
- return
- if(len(old_string) == 0):
- print 'failed to search and replace'
- return
- find_command = 'ls '+ path + '/*' + extension
- sed_command = 'sed -i \'s/' + old_string + '/' + new_string +\
- '/g\' *' + extension
- command_string = find_command + ' | xargs ' + sed_command + ' 2> deleteme.txt'
- os.system(command_string)
- #print command_string
-
-#find ./ -name "*.h" -type f | xargs -P 0 sed -i 's/process_thread_wrapper.h/process_thread.h/g' *.h deleteme.txt
-def replacestringinallsubfolders( old_string, new_string, extension):
- if(not stringmanipulation.isextension(extension)):
- print 'failed to search and replace'
- return
- if(len(old_string) == 0):
- print 'failed to search and replace'
- return
-
- find_command = 'find ./ -name \"*' + extension + '\" -type f'
- sed_command = 'sed -i \'s/' + old_string + '/' + new_string +\
- '/g\' *' + extension
- command_string = find_command + ' | xargs -P 0 ' + sed_command + ' 2> deleteme.txt'
- os.system(command_string)
- #print command_string
diff --git a/tools/refactoring/fixincludeguards.py b/tools/refactoring/fixincludeguards.py
deleted file mode 100644
index 0b563556ba..0000000000
--- a/tools/refactoring/fixincludeguards.py
+++ /dev/null
@@ -1,145 +0,0 @@
-#!/usr/bin/env python
-
-import stringmanipulation
-import filemanagement
-import sys
-
-extensions = ['.h']
-
-ignore_these = ['my_ignore_header.h']
-
-if((len(sys.argv) != 2) and (len(sys.argv) != 3)):
- print 'parameters are: directory [--commit]'
- quit()
-
-directory = sys.argv[1];
-if(not filemanagement.pathexist(directory)):
- print 'path ' + directory + ' does not exist'
- quit()
-
-if((len(sys.argv) == 3) and (sys.argv[2] != '--commit')):
- print 'parameters are: parent directory extension new extension [--commit]'
- quit()
-
-commit = False
-if(len(sys.argv) == 3):
- commit = True
-
-for extension in extensions:
- files_to_fix = filemanagement.listallfilesinfolder(directory,\
- extension)
-
-def buildincludeguardname(path,filename):
- full_file_name = 'WEBRTC_' + path + filename
- full_file_name = full_file_name.upper()
- full_file_name = stringmanipulation.replaceoccurances(full_file_name, '/', '_')
- full_file_name = stringmanipulation.replaceoccurances(full_file_name, '\\', '_')
- full_file_name = stringmanipulation.replaceoccurances(full_file_name, '.', '_')
- full_file_name += '_'
- return full_file_name
-
-def buildnewincludeguardset(path,filename):
- include_guard_name = buildincludeguardname(path,filename)
- if(include_guard_name == ''):
- return []
- return_value = []
- return_value.append('#ifndef ' + include_guard_name)
- return_value.append('#define ' + include_guard_name)
- return_value.append(include_guard_name)
- return return_value
-
-def printincludeguardset(include_guard_set):
- print 'First line: ' + include_guard_set[0]
- print 'Second line: ' + include_guard_set[1]
- print 'Last line: ' + include_guard_set[2]
- return
-
-include_guard_begin_identifier = ['#ifndef', '#if !defined']
-include_guard_second_identifier = ['#define']
-def findincludeguardidentifier(line):
- for begin_identifier in include_guard_begin_identifier:
- line = stringmanipulation.removealloccurances(line,begin_identifier)
- for second_identifier in include_guard_begin_identifier:
- line = stringmanipulation.removealloccurances(line,second_identifier)
- removed_prefix = [True,'']
- line = stringmanipulation.whitespacestoonespace(line)
- while(removed_prefix[0]):
- removed_prefix = stringmanipulation.removeprefix(line,' ')
- line = removed_prefix[1]
- line = stringmanipulation.removealloccurances(line,'(')
- if(line == ''):
- return ''
- word_pos = stringmanipulation.getword(line,0)
- return_value = line[0:word_pos[1]]
- return_value = return_value.rstrip('\r\n')
- return return_value
-
-def findoldincludeguardset(path,filename):
- return_value = []
- full_file_name = path + filename
- file_pointer = open(full_file_name,'r')
- include_guard_name = ''
- for line in file_pointer:
- if (include_guard_name == ''):
- for compare_string in include_guard_begin_identifier:
- if (stringmanipulation.issubstring(compare_string, line) != -1):
- include_guard_name = findincludeguardidentifier(line)
- if (include_guard_name == ''):
- break
- line = line.rstrip('\r\n')
- return_value.append(line)
- break
- else:
- for compare_string in include_guard_second_identifier:
- if (stringmanipulation.issubstring(compare_string, line) != -1):
- if (stringmanipulation.issubstring(include_guard_name, line) != -1):
- line = line.rstrip('\r\n')
- return_value.append(line)
- return_value.append(include_guard_name)
- return return_value
- include_guard_name = ''
- return_value = []
- return []
-
-failed_files = []
-for index in range(len(files_to_fix)):
- if(commit):
- print (100*index)/len(files_to_fix)
- path_dir = files_to_fix[index][0]
- filename = files_to_fix[index][1]
- is_ignore = False
- for ignore_names in ignore_these:
- if(filename == ignore_names):
- is_ignore = True
- break
- if(is_ignore):
- continue
- old_include_guard_set = findoldincludeguardset(path_dir,filename)
- if (len(old_include_guard_set) != 3) :
- failed_files.append('unable to figure out the include guards for ' + filename)
- continue
-
- new_include_guard_set = buildnewincludeguardset(path_dir,filename)
- if (len(new_include_guard_set) != 3) :
- failed_files.append('unable to figure out new the include guards for ' + filename)
- continue
-
- if(not commit):
- print 'old guard: ' + old_include_guard_set[2]
- print 'new guard: ' + new_include_guard_set[2]
- continue
-
- for index in range(2):
- # enough to only replace for file. However, no function for that
- for extension in extensions:
- filemanagement.replacestringinfolder(path_dir,old_include_guard_set[index],new_include_guard_set[index],extension)
- # special case for last to avoid complications
- for extension in extensions:
- filemanagement.replacestringinfolder(path_dir,' ' + old_include_guard_set[2],' ' + new_include_guard_set[2],extension)
- filemanagement.replacestringinfolder(path_dir,'\\/\\/' + old_include_guard_set[2],'\\/\\/ ' + new_include_guard_set[2],extension)
-
-
-if(len(failed_files) > 0):
- print 'Following failures should be investigated manually:'
-for line in failed_files:
- print line
diff --git a/tools/refactoring/fixnames.py b/tools/refactoring/fixnames.py
deleted file mode 100644
index 15381e38d4..0000000000
--- a/tools/refactoring/fixnames.py
+++ /dev/null
@@ -1,387 +0,0 @@
-#!/usr/bin/env python
-
-import stringmanipulation
-import filemanagement
-import p4commands
-import sys
-
-name_space_to_ignore = 'GIPS::'
-#only allow one prefix to be removed since allowing multiple will complicate
-# things
-prefix_to_filter = 'gips'
-#words_to_filter = ['Module']
-# it might be dangerous to remove GIPS but keep it default
-words_to_filter = ['Module','GIPS']
-
-# This script finds all the words that should be replaced in an h-file. Once
-# all words that should be replaced are found it does a global search and
-# replace.
-
-extensions_to_edit = ['.cpp','.cc','.h']
-
-#line = ' ~hiGIPSCriticalSectionScoped()'
-#print line
-#position = stringmanipulation.getword(line,11)
-#old_word = line[position[0]:position[0]+position[1]]
-#result = stringmanipulation.removealloccurances(old_word,'gips')
-#new_word = result
-#print old_word
-#print position[0]
-#print position[0]+position[1]
-#print new_word
-#quit()
-
-# Ignore whole line if any item in this table is a substring of the line
-do_not_replace_line_table = []
-do_not_replace_line_table.append('namespace GIPS')
-
-# [old_string,new_string]
-# List of things to remove that are static:
-manual_replace_table = []
-#manual_replace_table.append(['using namespace GIPS;',''])
-#manual_replace_table.append(['CreateGipsEvent','CreateEvent'])
-#manual_replace_table.append(['CreateGIPSTrace','CreateTrace'])
-#manual_replace_table.append(['ReturnGIPSTrace','ReturnTrace'])
-#manual_replace_table.append(['CreateGIPSFile','CreateFile'])
-replace_table = manual_replace_table
-#replace_table.append(['GIPS::','webrtc::'])
-# List of things to not remove that are static, i.e. exceptions:
-# don't replace any of the GIPS_Words since that will affect all files
-# do that in a separate script!
-do_not_replace_table = []
-do_not_replace_table.append('GIPS_CipherTypes')
-do_not_replace_table.append('GIPS_AuthenticationTypes')
-do_not_replace_table.append('GIPS_SecurityLevels')
-do_not_replace_table.append('GIPS_encryption')
-do_not_replace_table.append('~GIPS_encryption')
-do_not_replace_table.append('GIPS_transport')
-do_not_replace_table.append('~GIPS_transport')
-do_not_replace_table.append('GIPSTraceCallback')
-do_not_replace_table.append('~GIPSTraceCallback')
-do_not_replace_table.append('GIPS_RTP_CSRC_SIZE')
-do_not_replace_table.append('GIPS_RTPDirections')
-do_not_replace_table.append('GIPS_RTP_INCOMING')
-do_not_replace_table.append('GIPS_RTP_OUTGOING')
-do_not_replace_table.append('GIPSFrameType')
-do_not_replace_table.append('GIPS_FRAME_EMPTY')
-do_not_replace_table.append('GIPS_AUDIO_FRAME_SPEECH')
-do_not_replace_table.append('GIPS_AUDIO_FRAME_CN')
-do_not_replace_table.append('GIPS_VIDEO_FRAME_KEY')
-do_not_replace_table.append('GIPS_VIDEO_FRAME_DELTA')
-do_not_replace_table.append('GIPS_VIDEO_FRAME_GOLDEN')
-do_not_replace_table.append('GIPS_VIDEO_FRAME_DELTA_KEY')
-do_not_replace_table.append('GIPS_PacketType')
-do_not_replace_table.append('GIPS_PACKET_TYPE_RTP')
-do_not_replace_table.append('GIPS_PACKET_TYPE_KEEP_ALIVE')
-do_not_replace_table.append('GIPS_AudioLayers')
-do_not_replace_table.append('GIPS_AUDIO_PLATFORM_DEFAULT')
-do_not_replace_table.append('GIPS_AUDIO_WINDOWS_WAVE')
-do_not_replace_table.append('GIPS_AUDIO_WINDOWS_CORE')
-do_not_replace_table.append('GIPS_AUDIO_LINUX_ALSA')
-do_not_replace_table.append('GIPS_AUDIO_LINUX_PULSE')
-do_not_replace_table.append('GIPS_AUDIO_FORMAT')
-do_not_replace_table.append('GIPS_PCM_16_16KHZ')
-do_not_replace_table.append('GIPS_PCM_16_8KHZ')
-do_not_replace_table.append('GIPS_G729')
-do_not_replace_table.append('GIPSAMRmode')
-do_not_replace_table.append('GIPS_RFC3267_BWEFFICIENT')
-do_not_replace_table.append('GIPS_RFC3267_OCTETALIGNED')
-do_not_replace_table.append('GIPS_RFC3267_FILESTORAGE')
-do_not_replace_table.append('GIPS_NCModes')
-do_not_replace_table.append('GIPS_NC_OFF')
-do_not_replace_table.append('GIPS_NC_MILD')
-do_not_replace_table.append('GIPS_NC_MODERATE')
-do_not_replace_table.append('GIPS_NC_AGGRESSIVE')
-do_not_replace_table.append('GIPS_NC_VERY_AGGRESSIVE')
-do_not_replace_table.append('GIPS_AGCModes')
-do_not_replace_table.append('GIPS_AGC_OFF')
-do_not_replace_table.append('GIPS_AGC_ANALOG')
-do_not_replace_table.append('GIPS_AGC_DIGITAL')
-do_not_replace_table.append('GIPS_AGC_STANDALONE_DIG')
-do_not_replace_table.append('GIPS_ECModes')
-do_not_replace_table.append('GIPS_EC_UNCHANGED')
-do_not_replace_table.append('GIPS_EC_DEFAULT')
-do_not_replace_table.append('GIPS_EC_CONFERENCE')
-do_not_replace_table.append('GIPS_EC_AEC')
-do_not_replace_table.append('GIPS_EC_AES')
-do_not_replace_table.append('GIPS_EC_AECM')
-do_not_replace_table.append('GIPS_EC_NEC_IAD')
-do_not_replace_table.append('GIPS_AESModes')
-do_not_replace_table.append('GIPS_AES_DEFAULT')
-do_not_replace_table.append('GIPS_AES_NORMAL')
-do_not_replace_table.append('GIPS_AES_HIGH')
-do_not_replace_table.append('GIPS_AES_ATTENUATE')
-do_not_replace_table.append('GIPS_AES_NORMAL_SOFT_TRANS')
-do_not_replace_table.append('GIPS_AES_HIGH_SOFT_TRANS')
-do_not_replace_table.append('GIPS_AES_ATTENUATE_SOFT_TRANS')
-do_not_replace_table.append('GIPS_AECMModes')
-do_not_replace_table.append('GIPS_AECM_QUIET_EARPIECE_OR_HEADSET')
-do_not_replace_table.append('GIPS_AECM_EARPIECE')
-do_not_replace_table.append('GIPS_AECM_LOUD_EARPIECE')
-do_not_replace_table.append('GIPS_AECM_SPEAKERPHONE')
-do_not_replace_table.append('GIPS_AECM_LOUD_SPEAKERPHONE')
-do_not_replace_table.append('AECM_LOUD_SPEAKERPHONE')
-do_not_replace_table.append('GIPS_VAD_CONVENTIONAL')
-do_not_replace_table.append('GIPS_VAD_AGGRESSIVE_LOW')
-do_not_replace_table.append('GIPS_VAD_AGGRESSIVE_MID')
-do_not_replace_table.append('GIPS_VAD_AGGRESSIVE_HIGH')
-do_not_replace_table.append('GIPS_NetEQModes')
-do_not_replace_table.append('GIPS_NETEQ_DEFAULT')
-do_not_replace_table.append('GIPS_NETEQ_STREAMING')
-do_not_replace_table.append('GIPS_NETEQ_FAX')
-do_not_replace_table.append('GIPS_NetEQBGNModes')
-do_not_replace_table.append('GIPS_BGN_ON')
-do_not_replace_table.append('GIPS_BGN_FADE')
-do_not_replace_table.append('GIPS_BGN_OFF')
-do_not_replace_table.append('GIPS_OnHoldModes')
-do_not_replace_table.append('GIPS_HOLD_SEND_AND_PLAY')
-do_not_replace_table.append('GIPS_HOLD_SEND_ONLY')
-do_not_replace_table.append('GIPS_HOLD_PLAY_ONLY')
-do_not_replace_table.append('GIPS_PayloadFrequencies')
-do_not_replace_table.append('GIPS_FREQ_8000_HZ')
-do_not_replace_table.append('GIPS_FREQ_16000_HZ')
-do_not_replace_table.append('GIPS_FREQ_32000_HZ')
-do_not_replace_table.append('GIPS_TelephoneEventDetectionMethods')
-do_not_replace_table.append('GIPS_IN_BAND')
-do_not_replace_table.append('GIPS_OUT_OF_BAND')
-do_not_replace_table.append('GIPS_IN_AND_OUT_OF_BAND')
-do_not_replace_table.append('GIPS_ProcessingTypes')
-do_not_replace_table.append('GIPS_PLAYBACK_PER_CHANNEL')
-do_not_replace_table.append('GIPS_PLAYBACK_ALL_CHANNELS_MIXED')
-do_not_replace_table.append('GIPS_RECORDING_PER_CHANNEL')
-do_not_replace_table.append('GIPS_RECORDING_ALL_CHANNELS_MIXED')
-do_not_replace_table.append('GIPS_StereoChannel')
-do_not_replace_table.append('GIPS_StereoLeft')
-do_not_replace_table.append('GIPS_StereoRight')
-do_not_replace_table.append('GIPS_StereoBoth')
-do_not_replace_table.append('GIPS_stat_val')
-do_not_replace_table.append('GIPS_P56_statistics')
-do_not_replace_table.append('GIPS_echo_statistics')
-do_not_replace_table.append('GIPS_NetworkStatistics')
-do_not_replace_table.append('GIPS_JitterStatistics')
-do_not_replace_table.append('GIPSVideoRawType')
-do_not_replace_table.append('GIPS_VIDEO_I420')
-do_not_replace_table.append('GIPS_VIDEO_YV12')
-do_not_replace_table.append('GIPS_VIDEO_YUY2')
-do_not_replace_table.append('GIPS_VIDEO_UYVY')
-do_not_replace_table.append('GIPS_VIDEO_IYUV')
-do_not_replace_table.append('GIPS_VIDEO_ARGB')
-do_not_replace_table.append('GIPS_VIDEO_RGB24')
-do_not_replace_table.append('GIPS_VIDEO_RGB565')
-do_not_replace_table.append('GIPS_VIDEO_ARGB4444')
-do_not_replace_table.append('GIPS_VIDEO_ARGB1555')
-do_not_replace_table.append('GIPS_VIDEO_MJPG')
-do_not_replace_table.append('GIPS_VIDEO_NV12')
-do_not_replace_table.append('GIPS_VIDEO_NV21')
-do_not_replace_table.append('GIPS_VIDEO_Unknown')
-do_not_replace_table.append('GIPSVideoLayouts')
-do_not_replace_table.append('GIPS_LAYOUT_NONE')
-do_not_replace_table.append('GIPS_LAYOUT_DEFAULT')
-do_not_replace_table.append('GIPS_LAYOUT_ADVANCED1')
-do_not_replace_table.append('GIPS_LAYOUT_ADVANCED2')
-do_not_replace_table.append('GIPS_LAYOUT_ADVANCED3')
-do_not_replace_table.append('GIPS_LAYOUT_ADVANCED4')
-do_not_replace_table.append('GIPS_LAYOUT_FULL')
-do_not_replace_table.append('KGIPSConfigParameterSize')
-do_not_replace_table.append('KGIPSPayloadNameSize')
-do_not_replace_table.append('GIPSVideoCodecH263')
-do_not_replace_table.append('GIPSVideoH264Packetization')
-do_not_replace_table.append('GIPS_H264_SingleMode')
-do_not_replace_table.append('GIPS_H264_NonInterleavedMode')
-do_not_replace_table.append('GIPSVideoCodecComplexity')
-do_not_replace_table.append('GIPSVideoCodec_Complexity_Normal')
-do_not_replace_table.append('GIPSVideoCodec_Comlexity_High')
-do_not_replace_table.append('GIPSVideoCodec_Comlexity_Higher')
-do_not_replace_table.append('GIPSVideoCodec_Comlexity_Max')
-do_not_replace_table.append('GIPSVideoCodecH264')
-do_not_replace_table.append('GIPSVideoH264Packetization')
-do_not_replace_table.append('GIPSVideoCodecComplexity')
-do_not_replace_table.append('GIPSVideoCodecProfile')
-do_not_replace_table.append('KGIPSConfigParameterSize')
-do_not_replace_table.append('KGIPSMaxSVCLayers')
-do_not_replace_table.append('GIPSVideoH264LayerTypes')
-do_not_replace_table.append('GIPS_H264SVC_Base')
-do_not_replace_table.append('GIPS_H264SVC_Extend_2X2')
-do_not_replace_table.append('GIPS_H264SVC_Extend_1X1')
-do_not_replace_table.append('GIPS_H264SVC_Extend_MGS')
-do_not_replace_table.append('GIPS_H264SVC_Extend_1_5')
-do_not_replace_table.append('GIPS_H264SVC_Extend_Custom')
-do_not_replace_table.append('GIPSVideoH264LayersProperties')
-do_not_replace_table.append('GIPSVideoH264LayerTypes')
-do_not_replace_table.append('GIPSVideoH264Layers')
-do_not_replace_table.append('GIPSVideoH264LayersProperties')
-do_not_replace_table.append('GIPSVideoCodecH264SVC')
-do_not_replace_table.append('GIPSVideoCodecComplexity')
-do_not_replace_table.append('GIPSVideoCodecProfile')
-do_not_replace_table.append('GIPSVideoH264Layers')
-do_not_replace_table.append('GIPSVideoCodecVP8')
-do_not_replace_table.append('GIPSVideoCodecComplexity')
-do_not_replace_table.append('GIPSVideoCodecMPEG')
-do_not_replace_table.append('GIPSVideoCodecGeneric')
-do_not_replace_table.append('GIPSVideoCodecType')
-do_not_replace_table.append('GIPSVideoCodec_H263')
-do_not_replace_table.append('GIPSVideoCodec_H264')
-do_not_replace_table.append('GIPSVideoCodec_H264SVC')
-do_not_replace_table.append('GIPSVideoCodec_VP8')
-do_not_replace_table.append('GIPSVideoCodec_MPEG4')
-do_not_replace_table.append('GIPSVideoCodec_I420')
-do_not_replace_table.append('GIPSVideoCodec_RED')
-do_not_replace_table.append('GIPSVideoCodec_ULPFEC')
-do_not_replace_table.append('GIPSVideoCodec_Unknown')
-do_not_replace_table.append('GIPSVideoCodecUnion')
-do_not_replace_table.append('GIPSVideoCodecH263')
-do_not_replace_table.append('GIPSVideoCodecH264')
-do_not_replace_table.append('GIPSVideoCodecH264SVC')
-do_not_replace_table.append('GIPSVideoCodecVP8')
-do_not_replace_table.append('GIPSVideoCodecMPEG4')
-do_not_replace_table.append('GIPSVideoCodecGeneric')
-do_not_replace_table.append('GIPSVideoCodec')
-do_not_replace_table.append('GIPSVideoCodecType')
-do_not_replace_table.append('GIPSVideoCodecUnion')
-do_not_replace_table.append('GIPSAudioFrame')
-do_not_replace_table.append('GIPS_CodecInst')
-do_not_replace_table.append('GIPS_FileFormats')
-do_not_replace_table.append('GIPSTickTime')
-do_not_replace_table.append('GIPS_Word64')
-do_not_replace_table.append('GIPS_UWord64')
-do_not_replace_table.append('GIPS_Word32')
-do_not_replace_table.append('GIPS_UWord32')
-do_not_replace_table.append('GIPS_Word16')
-do_not_replace_table.append('GIPS_UWord16')
-do_not_replace_table.append('GIPS_Word8')
-do_not_replace_table.append('GIPS_UWord8')
-
-if((len(sys.argv) != 2) and (len(sys.argv) != 3)):
- print 'parameters are: parent directory [--commit]'
- quit()
-
-if((len(sys.argv) == 3) and (sys.argv[2] != '--commit')):
- print 'parameters are: parent directory [--commit]'
- quit()
-
-commit = (len(sys.argv) == 3)
-
-directory = sys.argv[1];
-if(not filemanagement.pathexist(directory)):
- print 'path ' + directory + ' does not exist'
- quit()
-
-# APIs are all in h-files
-extension = '.h'
-
-# All h-files
-files_to_modify = filemanagement.listallfilesinfolder(directory,\
- extension)
-
-def isinmanualremovetable( compare_word ):
- for old_word, new_word in manual_replace_table:
- if(old_word == compare_word):
- return True
- return False
-
-# Begin
-# This function looks at each line and decides which words should be replaced
-# that is this is the only part of the script that you will ever want to change!
-def findstringstoreplace(line):
- original_line = line
-# Dont replace compiler directives
- if(line[0] == '#'):
- return []
-# Dont allow global removal of namespace gips since it is very intrusive
- for sub_string_compare in do_not_replace_line_table:
- index = stringmanipulation.issubstring(line,sub_string_compare)
- if(index != -1):
- return []
-
- return_value = []
-
- line = stringmanipulation.removeccomment(line)
- line = stringmanipulation.whitespacestoonespace(line)
- if(len(line) == 0):
- return []
- if(line[0] == '*'):
- return []
- index = stringmanipulation.issubstring(line,prefix_to_filter)
- while index >= 0:
- dont_store_hit = False
- word_position = stringmanipulation.getword(line, index)
- start_of_word = word_position[0]
- size_of_word = word_position[1]
- end_of_word = start_of_word + size_of_word
- old_word = line[start_of_word:end_of_word]
- if(isinmanualremovetable(old_word)):
- dont_store_hit = True
- if((end_of_word + 2 < len(line)) and\
- name_space_to_ignore == line[start_of_word:end_of_word+2]):
- dont_store_hit = True
-
- result = stringmanipulation.removeprefix(old_word,prefix_to_filter)
- new_word = result[1]
- for word_to_filter in words_to_filter:
- new_word = stringmanipulation.removealloccurances(new_word,word_to_filter)
- result = stringmanipulation.removeprefix(new_word,'_')
- new_word = result[1]
- new_word = stringmanipulation.fixabbreviations(new_word)
- new_word = stringmanipulation.removealloccurances(new_word,'_')
- if(not dont_store_hit):
- return_value.append([old_word,new_word])
-# remove the word we found from the string so we dont find it again
- line = line[0:start_of_word] + line[end_of_word:len(line)]
- index = stringmanipulation.issubstring(line,'GIPS')
-
- return return_value
-# End
-
-# loop through all files
-for path, file_name in files_to_modify:
-# if(file_name != 'GIPSTickUtil.h'):
-# continue
- full_file_name = path + file_name
- file_pointer = open(full_file_name,'r')
-# print file_name
-#loop through all lines
- for line in file_pointer:
-# print line
- local_replace_string = findstringstoreplace(line)
- #print local_replace_string
- if(len(local_replace_string) != 0):
- replace_table.extend(local_replace_string)
-
-
-# we have built our replace table now
-replace_table = stringmanipulation.removeduplicates( replace_table )
-replace_table = stringmanipulation.ordertablesizefirst( replace_table )
-replace_table = stringmanipulation.complement(replace_table,\
- do_not_replace_table)
-
-def replaceoriginal( path,my_table ):
- size_of_table = len(my_table)
- for index in range(len(my_table)):
- old_name = my_table[index][0]
- new_name = my_table[index][1]
- filemanagement.replacestringinfolder(path, old_name, new_name,\
- ".h")
- print (100*index) / (size_of_table*2)
-
-def replaceall( my_table, extension_list ):
- size_of_table = len(my_table)
- for index in range(len(my_table)):
- old_name = my_table[index][0]
- new_name = my_table[index][1]
- new_name = new_name
- for extension in extensions_to_edit:
- filemanagement.replacestringinallsubfolders(old_name, new_name,
- extension)
- print 100*(size_of_table + index) / (size_of_table*2)
-
-
-if(commit):
- print 'commiting'
- replace_table = stringmanipulation.removenochange(replace_table)
- p4commands.checkoutallfiles()
- replaceoriginal(directory,replace_table)
- replaceall(replace_table,extensions_to_edit)
- p4commands.revertunchangedfiles()
-else:
- for old_name, new_name in replace_table:
- print 'Going to replace [' + old_name + '] with [' + new_name + ']'
diff --git a/tools/refactoring/integratefiles.py b/tools/refactoring/integratefiles.py
deleted file mode 100644
index c5cc892095..0000000000
--- a/tools/refactoring/integratefiles.py
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/usr/bin/env python
-
-import stringmanipulation
-import filemanagement
-import p4commands
-import sys
-
-extensions = ['.h', '.cpp', '.cc', '.gyp']
-
-ignore_these = ['list_no_stl.h','map_no_stl.h','constructor_magic.h']
-
-exceptions = [
-['GIPSRWLock.h','rw_lock.h'],
-['GIPSCriticalsection.h','critical_section.h'],
-]
-
-if((len(sys.argv) != 4) and (len(sys.argv) != 5)):
- print 'parameters are: parent directory extension new extension [--commit]'
- quit()
-
-directory = sys.argv[1];
-if(not filemanagement.pathexist(directory)):
- print 'path ' + directory + ' does not exist'
- quit()
-
-old_extension = sys.argv[2]
-if(not stringmanipulation.isextension(old_extension)):
- print old_extension + ' is not a valid extension'
- quit()
-
-new_extension = sys.argv[3]
-if(not stringmanipulation.isextension(new_extension)):
- print new_extension + ' is not a valid extension'
- quit()
-
-if((len(sys.argv) == 5) and (sys.argv[4] != '--commit')):
- print 'parameters are: parent directory extension new extension [--commit]'
- quit()
-
-commit = False
-if(len(sys.argv) == 5):
- commit = True
-
-files_to_integrate = filemanagement.listallfilesinfolder(directory,\
- old_extension)
-
-if(commit):
- p4commands.checkoutallfiles()
-for index in range(len(files_to_integrate)):
- if(commit):
- print (100*index)/len(files_to_integrate)
- path_dir = files_to_integrate[index][0]
- filename = files_to_integrate[index][1]
- is_ignore = False
- for ignore_names in ignore_these:
- if(filename == ignore_names):
- is_ignore = True
- break
- if(is_ignore):
- continue
-
- new_file_name = ''
- is_exception = False
- for exception_name,exception_name_new in exceptions:
- if(filename == exception_name):
- is_exception = True
- new_file_name = exception_name_new
- break
-
- if(not is_exception):
- new_file_name = filename
-
- new_file_name = stringmanipulation.removeallprefix(new_file_name,\
- 'gips')
- new_file_name = stringmanipulation.removealloccurances(new_file_name,\
- 'module')
- new_file_name = stringmanipulation.changeextension(new_file_name,\
- old_extension,\
- new_extension)
- new_file_name = stringmanipulation.fixabbreviations( new_file_name )
- new_file_name = stringmanipulation.lowercasewithunderscore(new_file_name)
- if(not commit):
- print 'File ' + filename + ' will be replaced with ' + new_file_name
- continue
- full_new_file_name = path_dir + new_file_name
- full_old_file_name = path_dir + filename
- if(full_new_file_name != full_old_file_name):
- p4commands.integratefile(full_old_file_name,full_new_file_name)
- else:
- print 'skipping ' + new_file_name + ' due to no change'
- for extension in extensions:
- print 'replacing ' + filename
- if (extension == ".gyp"):
- filemanagement.replacestringinallsubfolders(
- filename,new_file_name,extension)
- else:
- filemanagement.replacestringinallsubfolders(
- '\"' + filename + '\"', '\"' + new_file_name + '\"', extension)
-if(commit):
- p4commands.revertunchangedfiles()
diff --git a/tools/refactoring/p4commands.py b/tools/refactoring/p4commands.py
deleted file mode 100644
index 71ac31b0d0..0000000000
--- a/tools/refactoring/p4commands.py
+++ /dev/null
@@ -1,31 +0,0 @@
-import os
-import filemanagement
-
-# checks out entire p4 repository
-def checkoutallfiles():
- os.system('p4 edit //depotGoogle/...')
- return
-
-# reverts all unchanged files, this is completely innoculus
-def revertunchangedfiles():
- os.system('p4 revert -a //depotGoogle/...')
- return
-
-def integratefile( old_name, new_name):
- if(old_name == new_name):
- return
- if(not filemanagement.fileexist(old_name)):
- return
- integrate_command = 'p4 integrate -o -f ' +\
- old_name +\
- ' ' +\
- new_name +\
- ' > p4summary.txt 2> error.txt'
- os.system(integrate_command)
- #print integrate_command
- delete_command = 'p4 delete -c default ' +\
- old_name +\
- ' > p4summary.txt 2> error.txt'
- os.system(delete_command)
- #print delete_command
- return
diff --git a/tools/refactoring/removetrace.py b/tools/refactoring/removetrace.py
deleted file mode 100644
index 43c622dc40..0000000000
--- a/tools/refactoring/removetrace.py
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
-#
-# Use of this source code is governed by a BSD-style license
-# that can be found in the LICENSE file in the root of the source
-# tree. An additional intellectual property rights grant can be found
-# in the file PATENTS. All contributing project authors may
-# be found in the AUTHORS file in the root of the source tree.
-
-# NOTE: This is a hack which disobeys a number of conventions and best
-# practices. It's here just to be easily shared. If it's to remain in the
-# repository it should be refactored.
-
-#!/usr/bin/env python
-
-import stringmanipulation
-import filemanagement
-import sys
-
-trace_remove_key_word = 'kTraceModuleCall'
-
-if((len(sys.argv) != 2) and (len(sys.argv) != 3)):
- print 'parameters are: parent directory [--commit]'
- quit()
-
-if((len(sys.argv) == 3) and (sys.argv[2] != '--commit')):
- print 'parameters are: parent directory [--commit]'
- quit()
-
-commit = (len(sys.argv) == 3)
-
-directory = sys.argv[1];
-occurances = []
-
-trace_identifier = 'WEBRTC_TRACE('
-extensions = ['.h','.cc','.c','.cpp']
-files_to_fix = []
-for extension in extensions:
- files_to_fix.extend(filemanagement.listallfilesinfolder(directory,\
- extension))
-
-# This function identifies the begining of a trace statement
-def istracebegining(line):
- return stringmanipulation.issubstring(line, trace_identifier) != -1
-
-def endofstatement(line):
- return stringmanipulation.issubstring(line, ';') != -1
-
-def removekeywordfound(line):
- return stringmanipulation.issubstring(line, trace_remove_key_word) != -1
-
-# Used to store temporary result before flushing to real file when finished
-def temporaryfilename():
- return 'deleteme.txt'
-
-
-def find_occurances(path, file_name):
- full_filename = path + file_name
- file_handle = open(full_filename,'r')
- line_is_trace = False
- last_trace_line = -1
- for line_nr, line in enumerate(file_handle):
- if(istracebegining(line)):
- line_is_trace = True;
- last_trace_line = line_nr
-
- if(line_is_trace):
- if(removekeywordfound(line)):
- occurances.append(last_trace_line)
-
- if(endofstatement(line)):
- line_is_trace = False;
-
-def remove_occurances(path, file_name):
- full_file_name = path + file_name
- if (not filemanagement.fileexist(full_file_name)):
- print 'File ' + full_file_name + ' is not found.'
- print 'Should not happen! Ever!'
- quit()
-
- full_temporary_file_name = path + temporaryfilename()
- temporary_file = open(full_temporary_file_name,'w')
- original_file = open(full_file_name,'r')
- next_occurance_id = 0;
- removing_statement = False
- if(len(occurances) == next_occurance_id):
- return
- next_occurance = occurances[next_occurance_id]
- next_occurance_id += 1
- for line_nr, line in enumerate(original_file):
- if(line_nr == next_occurance):
- removing_statement = True
- if(len(occurances) == next_occurance_id):
- next_occurance_id = -1
- else:
- next_occurance = occurances[next_occurance_id]
- next_occurance_id += 1
-
- if (not removing_statement):
- temporary_file.writelines(line)
-
- if(endofstatement(line)):
- removing_statement = False;
-
- temporary_file.close()
- original_file.close()
- filemanagement.copyfile(full_file_name,full_temporary_file_name)
- filemanagement.deletefile(full_temporary_file_name)
-
-def nextoccurance():
- if (len(occurances) == 0):
- return -1
- return_value = occurances[0]
- occurances = occurances[1:len(occurances)]
- return return_value
-
-def would_be_removed_occurances(path, file_name):
- full_file_name = path + file_name
- if (not filemanagement.fileexist(full_file_name)):
- print 'File ' + full_file_name + ' is not found.'
- print 'Should not happen! Ever!'
- quit()
-
- original_file = open(full_file_name,'r')
- removing_statement = False
- next_occurance_id = 0;
- if(len(occurances) == next_occurance_id):
- return
- next_occurance = occurances[next_occurance_id]
- next_occurance_id += 1
- for line_nr, line in enumerate(original_file):
- if(line_nr == next_occurance):
- removing_statement = True
- if(len(occurances) == next_occurance_id):
- return
- next_occurance = occurances[next_occurance_id]
- next_occurance_id += 1
-
- if (removing_statement):
- print line_nr
-
- if(endofstatement(line)):
- removing_statement = False;
- if(next_occurance == -1):
- break
- original_file.close()
-
-for index in range(len(files_to_fix)):
- if(commit):
- print (100*index)/len(files_to_fix)
-
- path_dir = files_to_fix[index][0]
- filename = files_to_fix[index][1]
-
- #print path_dir + filename
- occurances = []
- find_occurances(path_dir, filename)
-
- if(not commit):
- would_be_removed_occurances(path_dir, filename)
- continue
- remove_occurances(path_dir, filename)
diff --git a/tools/refactoring/stringmanipulation.py b/tools/refactoring/stringmanipulation.py
deleted file mode 100644
index 0d9e0ff3a5..0000000000
--- a/tools/refactoring/stringmanipulation.py
+++ /dev/null
@@ -1,303 +0,0 @@
-import string
-
-# returns tuple, [success,updated_string] where the updated string has
-# has one less (the first) occurance of match string
-def removefirstoccurance( remove_string, match_string ):
- lowercase_string = remove_string.lower()
- lowercase_match_string = match_string.lower()
- lowest_index = lowercase_string.find(lowercase_match_string)
- if(lowest_index == -1):
- return [False,remove_string]
- past_match_index = lowest_index + len(lowercase_match_string)
- highest_index = len(remove_string)
- remove_string = remove_string[0:lowest_index] + remove_string[past_match_index: highest_index]
- return [True,remove_string]
-
-# returns a string with all occurances of match_string removed
-def removealloccurances( remove_string, match_string ):
- return_value = [True, remove_string]
- while(return_value[0]):
- return_value = removefirstoccurance(return_value[1],match_string)
- return return_value[1]
-
-# removes an occurance of match_string only if it's first in the string
-# returns tuple [succes, new_string]
-def removeprefix( remove_string, match_string ):
- lowercase_string = remove_string.lower()
- lowercase_match_string = match_string.lower()
- lowest_index = lowercase_string.find(lowercase_match_string)
- if(lowest_index == -1):
- return [False,remove_string]
- if(lowest_index != 0):
- return [False,remove_string]
- past_match_index = lowest_index + len(lowercase_match_string)
- highest_index = len(remove_string)
- remove_string = remove_string[0:lowest_index] + remove_string[past_match_index: highest_index]
-# print lowest_index
-# print past_match_index
- return [True,remove_string]
-
-# removes multiple occurances of match string as long as they are first in
-# the string
-def removeallprefix( remove_string, match_string ):
- return_value = [True, remove_string]
- while(return_value[0]):
- return_value = removeprefix(return_value[1],match_string)
- return return_value[1]
-
-# returns true if extensionstring is a correct extension
-def isextension( extensionstring ):
- if(len(extensionstring) < 2):
- return False
- if(extensionstring[0] != '.'):
- return False
- if(extensionstring[1:len(extensionstring)-1].find('.') != -1):
- return False
- return True
-
-# returns the index of start of the last occurance of match_string
-def findlastoccurance( original_string, match_string ):
- search_index = original_string.find(match_string)
- found_index = search_index
- last_index = len(original_string) - 1
- while((search_index != -1) and (search_index < last_index)):
- search_index = original_string[search_index+1:last_index].find(match_string)
- if(search_index != -1):
- found_index = search_index
- return found_index
-
-# changes extension from original_extension to new_extension
-def changeextension( original_string, original_extension, new_extension):
- if(not isextension(original_extension)):
- return original_string
- if(not isextension(new_extension)):
- return original_string
- index = findlastoccurance(original_string, original_extension)
- if(index == -1):
- return original_string
- return_value = original_string[0:index] + new_extension
- return return_value
-
-# wanted to do this with str.find however didnt seem to work so do it manually
-# returns the index of the first capital letter
-def findfirstcapitalletter( original_string ):
- for index in range(len(original_string)):
- if(original_string[index].lower() != original_string[index]):
- return index
- return -1
-
-
-# replaces capital letters with underscore and lower case letter (except very
-# first
-def lowercasewithunderscore( original_string ):
-# ignore the first letter since there should be no underscore in front of it
- if(len(original_string) < 2):
- return original_string
- return_value = original_string[1:len(original_string)]
- index = findfirstcapitalletter(return_value)
- while(index != -1):
- return_value = return_value[0:index] + \
- '_' + \
- return_value[index].lower() + \
- return_value[index+1:len(return_value)]
- index = findfirstcapitalletter(return_value)
- return_value = original_string[0].lower() + return_value
- return return_value
-
-# my table is a duplicate of strings
-def removeduplicates( my_table ):
- new_table = []
- for old_string1, new_string1 in my_table:
- found = 0
- for old_string2, new_string2 in new_table:
- if(old_string1 == old_string2):
- found += 1
- if(new_string1 == new_string2):
- if(new_string1 == ''):
- found += found
- else:
- found += 1
- if(found == 1):
- print 'missmatching set, terminating program'
- print old_string1
- print new_string1
- print old_string2
- print new_string2
- quit()
- if(found == 2):
- break
- if(found == 0):
- new_table.append([old_string1,new_string1])
- return new_table
-
-def removenochange( my_table ):
- new_table = []
- for old_string, new_string in my_table:
- if(old_string != new_string):
- new_table.append([old_string,new_string])
- return new_table
-
-# order table after size of the string (can be used to replace bigger strings
-# first which is useful since smaller strings can be inside the bigger string)
-# E.g. GIPS is a sub string of GIPSVE if we remove GIPS first GIPSVE will never
-# be removed. N is small so no need for fancy sort algorithm. Use selection sort
-def ordertablesizefirst( my_table ):
- for current_index in range(len(my_table)):
- biggest_string = 0
- biggest_string_index = -1
- for search_index in range(len(my_table)):
- if(search_index < current_index):
- continue
- length_of_string = len(my_table[search_index][0])
- if(length_of_string > biggest_string):
- biggest_string = length_of_string
- biggest_string_index = search_index
- if(biggest_string_index == -1):
- print 'sorting algorithm failed, program exit'
- quit()
- old_value = my_table[current_index]
- my_table[current_index] = my_table[biggest_string_index]
- my_table[biggest_string_index] = old_value
- return my_table
-
-# returns true if string 1 or 2 is a substring of the other, assuming neither
-# has whitespaces
-def issubstring( string1, string2 ):
- if(len(string1) == 0):
- return -1
- if(len(string2) == 0):
- return -1
- large_string = string1
- small_string = string2
- if(len(string1) < len(string2)):
- large_string = string2
- small_string = string1
-
- for index in range(len(large_string)):
- large_sub_string = large_string[index:index+len(small_string)].lower()
- if(large_sub_string ==\
- small_string.lower()):
- return index
- return -1
-
-#not_part_of_word_table = [' ','(',')','{','}',':','\t','*','&','/','[',']','.',',','\n']
-#def ispartofword( char ):
-# for item in not_part_of_word_table:
-# if(char == item):
-# return False
-# return True
-
-# must be numerical,_ or charachter
-def ispartofword( char ):
- if(char.isalpha()):
- return True
- if(char.isalnum()):
- return True
- if(char == '_'):
- return True
- return False
-
-# returns the index of the first letter in the word that the current_index
-# is pointing to and the size of the word
-def getword( line, current_index):
- if(current_index < 0):
- return []
- line = line.rstrip()
- if(len(line) <= current_index):
- return []
- if(line[current_index] == ' '):
- return []
- start_pos = current_index
- while start_pos >= 0:
- if(not ispartofword(line[start_pos])):
- start_pos += 1
- break
- start_pos -= 1
- if(start_pos == -1):
- start_pos = 0
- end_pos = current_index
- while end_pos < len(line):
- if(not ispartofword(line[end_pos])):
- break
- end_pos += 1
- return [start_pos,end_pos - start_pos]
-
-# my table is a tuple [string1,string2] complement_to_table is just a list
-# of strings to compare to string1
-def complement( my_table, complement_to_table ):
- new_table = []
- for index in range(len(my_table)):
- found = False;
- for compare_string in complement_to_table:
- if(my_table[index][0].lower() == compare_string.lower()):
- found = True
- if(not found):
- new_table.append(my_table[index])
- return new_table
-
-def removestringfromhead( line, remove_string):
- for index in range(len(line)):
- if(line[index:index+len(remove_string)] != remove_string):
- return line[index:index+len(line)]
- return ''
-
-def removeccomment( line ):
- comment_string = '//'
- for index in range(len(line)):
- if(line[index:index+len(comment_string)] == comment_string):
- return line[0:index]
- return line
-
-def whitespacestoonespace( line ):
- return ' '.join(line.split())
-
-def fixabbreviations( original_string ):
- previouswascapital = (original_string[0].upper() == original_string[0])
- new_string = ''
- for index in range(len(original_string)):
- if(index == 0):
- new_string += original_string[index]
- continue
- if(original_string[index] == '_'):
- new_string += original_string[index]
- previouswascapital = False
- continue
- if(original_string[index].isdigit()):
- new_string += original_string[index]
- previouswascapital = False
- continue
- currentiscapital = (original_string[index].upper() == original_string[index])
- letter_to_add = original_string[index]
- if(previouswascapital and currentiscapital):
- letter_to_add = letter_to_add.lower()
- if(previouswascapital and (not currentiscapital)):
- old_letter = new_string[len(new_string)-1]
- new_string = new_string[0:len(new_string)-1]
- new_string += old_letter.upper()
- previouswascapital = currentiscapital
- new_string += letter_to_add
- return new_string
-
-def replaceoccurances(old_string, replace_string, replace_with_string):
- if (len(replace_string) == 0):
- return old_string
- if (len(old_string) < len(replace_string)):
- return old_string
- # Simple implementation, could proably be done smarter
- new_string = ''
- for index in range(len(old_string)):
- #print new_string
- if(len(replace_string) > (len(old_string) - index)):
- new_string += old_string[index:index + len(old_string)]
- break
- match = (len(replace_string) > 0)
- for replace_index in range(len(replace_string)):
- if (replace_string[replace_index] != old_string[index + replace_index]):
- match = False
- break
- if (match):
- new_string += replace_with_string
- index =+ len(replace_string)
- else:
- new_string += old_string[index]
- return new_string
diff --git a/tools/refactoring/trim.py b/tools/refactoring/trim.py
deleted file mode 100644
index 5539f5fef7..0000000000
--- a/tools/refactoring/trim.py
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-import fileinput
-
-# Defaults
-TABSIZE = 4
-
-usage = """
-Replaces all TAB characters with %(TABSIZE)d space characters.
-In addition, all trailing space characters are removed.
-usage: trim file ...
-file ... : files are changed in place without taking any backup.
-""" % vars()
-
-def main():
-
- if len(sys.argv) == 1:
- sys.stderr.write(usage)
- sys.exit(2)
-
- # Iterate over the lines of all files listed in sys.argv[1:]
- for line in fileinput.input(sys.argv[1:], inplace=True):
- line = line.replace('\t',' '*TABSIZE); # replace TABs
- line = line.rstrip(None) # remove trailing whitespaces
- print line # modify the file
-
-if __name__ == '__main__':
- main()
diff --git a/tools/refactoring/trimall.py b/tools/refactoring/trimall.py
deleted file mode 100644
index 7a1c458af3..0000000000
--- a/tools/refactoring/trimall.py
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-import fileinput
-import filemanagement
-import p4commands
-
-# Defaults
-TABSIZE = 4
-
-extensions = ['.h','.cc','.c','.cpp']
-
-ignore_these = ['my_ignore_header.h']
-
-usage = """
-Replaces all TAB characters with %(TABSIZE)d space characters.
-In addition, all trailing space characters are removed.
-usage: trim directory
-""" % vars()
-
-if((len(sys.argv) != 2) and (len(sys.argv) != 3)):
- sys.stderr.write(usage)
- sys.exit(2)
-
-directory = sys.argv[1];
-if(not filemanagement.pathexist(directory)):
- sys.stderr.write(usage)
- sys.exit(2)
-
-if((len(sys.argv) == 3) and (sys.argv[2] != '--commit')):
- sys.stderr.write(usage)
- sys.exit(2)
-
-commit = False
-if(len(sys.argv) == 3):
- commit = True
-
-files_to_fix = []
-for extension in extensions:
- files_to_fix.extend(filemanagement.listallfilesinfolder(directory,\
- extension))
-
-def main():
- if (commit):
- p4commands.checkoutallfiles()
- for path,file_name in files_to_fix:
- full_file_name = path + file_name
- if (not commit):
- print full_file_name + ' will be edited'
- continue
- for line in fileinput.input(full_file_name, inplace=True):
- line = line.replace('\t',' '*TABSIZE); # replace TABs
- line = line.rstrip(None) # remove trailing whitespaces
- print line # modify the file
- if (commit):
- p4commands.revertunchangedfiles()
-
-if __name__ == '__main__':
- main()
diff --git a/tools/refactoring/webrtc_reformat.py b/tools/refactoring/webrtc_reformat.py
deleted file mode 100755
index 269d1c3f6c..0000000000
--- a/tools/refactoring/webrtc_reformat.py
+++ /dev/null
@@ -1,212 +0,0 @@
-#!/usr/bin/python
-# Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
-#
-# Use of this source code is governed by a BSD-style license
-# that can be found in the LICENSE file in the root of the source
-# tree. An additional intellectual property rights grant can be found
-# in the file PATENTS. All contributing project authors may
-# be found in the AUTHORS file in the root of the source tree.
-
-"""WebRTC reformat script.
-
-This script is used to reformat WebRTC code from the old code style to Google
-C++ code style. This script does not indent code; use clang-reformat-chrome.py
-as described in go/webrtc/engineering/reformatting-gips---google.
-"""
-
-__author__ = 'mflodman@webrtc.org (Magnus Flodman)'
-
-import fnmatch
-import os
-import re
-import subprocess
-import sys
-
-
-def LowerWord(obj):
- """Helper for DeCamelCase."""
- optional_last_letters = obj.group(3) or ''
- return obj.group(1) + '_' + obj.group(2).lower() + optional_last_letters
-
-
-def DeCamelCase(text):
- """De-camelize variable names.
-
- This function will look at any stringLikeThis and format it in steps. The
- sequence will be stringLikeThis -> string_likeThis -> string_like_this.
- """
- possible_tokens_before_vars = '[ _*\(\&\!\[]'
- pattern = re.compile(r'(?<=' + possible_tokens_before_vars + ')' +
- # Match some lower-case characters
- '([a-z]+)' +
- # Don't match kFoo, !kFoo, [kFoo], etc
- '(?<!' + possible_tokens_before_vars + 'k)' +
- # Match some upper-case characters
- '([A-Z]+)([a-z])?')
- while re.search(pattern, text):
- text = re.sub(pattern, LowerWord, text)
- return text
-
-
-def MoveUnderScore(text):
- """Moves the underscore from beginning of variable name to the end."""
- # TODO(mflodman) Replace \1 with ?-expression.
- # We don't want to change macros and #defines though, so don't do anything
- # if the first character is uppercase (normal variables shouldn't have that).
- pattern = r'([ \*\!\&\(\[\]])_(?!_)(?![A-Z])(\w+)'
- return re.sub(pattern, r'\1\2_', text)
-
-
-def PostfixToPrefixInForLoops(text):
- """Converts x++ to ++x in the increment part of a for loop."""
- pattern = r'(for \(.*;.*;) (\w+)\+\+\)'
- return re.sub(pattern, r'\1++\2)', text)
-
-
-def SortIncludeHeaders(text, filename):
- """Sorts all include headers in alphabetic order.
-
- The file's own header goes first, followed by system headers and then
- project headers. This function will exit if we detect any fancy #ifdef logic
- among the includes - that's a lot harder to sort.
-
- Args:
- text: The file text.
- filename: The file we are reformatting.
-
- Returns:
- The text with includes sorted.
- """
- # Get all includes in file.
- include_pattern = re.compile('#include.+\n')
- includes = re.findall(include_pattern, text)
-
- # Sort system headers and project headers separately.
- sys_includes = []
- project_includes = []
- self_include = ''
- sys_pattern = re.compile('#include <')
- h_filename, _ = os.path.splitext(os.path.basename(filename))
-
- for item in includes:
- if re.search(h_filename + '\.', item):
- self_include = item
- elif re.search(sys_pattern, item):
- sys_includes.append(item)
- else:
- project_includes.append(item)
-
- sys_includes = sorted(sys_includes)
- project_includes = sorted(project_includes)
- headers = (self_include + '\n' + ''.join(sys_includes) + '\n' +
- ''.join(project_includes))
-
- # Replace existing headers with the sorted string.
- text_no_hdrs = re.sub(include_pattern, r'???', text)
-
- # Insert sorted headers unless we detect #ifdefs right next to the headers.
- if re.search(r'(#ifdef|#ifndef|#if).*\s*\?{3,}\s*#endif', text_no_hdrs):
- print 'WARNING: Include headers not sorted in ' + filename
- return text
-
- return_text = re.sub(r'\?{3,}', headers, text_no_hdrs, 1)
- if re.search(r'\?{3,}', text_no_hdrs):
- # Remove possible remaining ???.
- return_text = re.sub(r'\?{3,}', r'', return_text)
-
- return return_text
-
-
-def AddPath(match):
- """Helper for adding file path for WebRTC header files, ignoring other."""
- file_to_examine = match.group(1) + '.h'
- # TODO(mflodman) Use current directory and find webrtc/.
- for path, _, files in os.walk('./webrtc'):
- for filename in files:
- if fnmatch.fnmatch(filename, file_to_examine):
- path_name = os.path.join(path, filename).replace('./', '')
- return '#include "%s"\n' % path_name
-
- # No path found, return original string.
- return '#include "'+ file_to_examine + '"\n'
-
-
-def AddHeaderPath(text):
- """Add path to all included header files that have no path yet."""
- headers = re.compile('#include "(.+).h"\n')
- return re.sub(headers, AddPath, text)
-
-
-def AddWebrtcToOldSrcRelativePath(match):
- file_to_examine = match.group(1) + '.h'
- path, filename = os.path.split(file_to_examine)
- dirs_in_webrtc = [name for name in os.listdir('./webrtc')
- if os.path.isdir(os.path.join('./webrtc', name))]
- for dir_in_webrtc in dirs_in_webrtc:
- if path.startswith(dir_in_webrtc):
- return '#include "%s"\n' % os.path.join('webrtc', path, filename)
- return '#include "%s"\n' % file_to_examine
-
-def AddWebrtcPrefixToOldSrcRelativePaths(text):
- """For all paths starting with for instance video_engine, add webrtc/."""
- headers = re.compile('#include "(.+).h"\n')
- return re.sub(headers, AddWebrtcToOldSrcRelativePath, text)
-
-
-def FixIncludeGuards(text, file_name):
- """Change include guard according to the stantard."""
- # Remove a possible webrtc/ from the path.
- file_name = re.sub(r'(webrtc\/)(.+)', r'\2', file_name)
- new_guard = 'WEBRTC_' + file_name
- new_guard = new_guard.upper()
- new_guard = re.sub(r'([/\.])', r'_', new_guard)
- new_guard += '_'
-
- text = re.sub(r'#ifndef WEBRTC_.+\n', r'#ifndef ' + new_guard + '\n', text, 1)
- text = re.sub(r'#define WEBRTC_.+\n', r'#define ' + new_guard + '\n', text, 1)
- text = re.sub(r'#endif *\/\/ *WEBRTC_.+\n', r'#endif // ' + new_guard + '\n',
- text, 1)
-
- return text
-
-
-def SaveFile(filename, text):
- os.remove(filename)
- f = open(filename, 'w')
- f.write(text)
- f.close()
-
-
-def main():
- args = sys.argv[1:]
- if not args:
- print 'Usage: %s <filename>' % sys.argv[0]
- sys.exit(1)
-
- for filename in args:
- f = open(filename)
- text = f.read()
- f.close()
-
- text = DeCamelCase(text)
- text = MoveUnderScore(text)
- text = PostfixToPrefixInForLoops(text)
- text = AddHeaderPath(text)
- text = AddWebrtcPrefixToOldSrcRelativePaths(text)
- text = SortIncludeHeaders(text, filename)
-
- # Remove the original file and re-create it with the reformatted content.
- SaveFile(filename, text)
-
- if filename.endswith('.h'):
- f = open(filename)
- text = f.read()
- f.close()
- text = FixIncludeGuards(text, filename)
- SaveFile(filename, text)
-
- print filename + ' done.'
-
-
-if __name__ == '__main__':
- main()
diff --git a/tools/sslroots/generate_sslroots.py b/tools/sslroots/generate_sslroots.py
new file mode 100644
index 0000000000..65751f1f1a
--- /dev/null
+++ b/tools/sslroots/generate_sslroots.py
@@ -0,0 +1,190 @@
+# -*- coding:utf-8 -*-
+# Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
+#
+# Use of this source code is governed by a BSD-style license
+# that can be found in the LICENSE file in the root of the source
+# tree. An additional intellectual property rights grant can be found
+# in the file PATENTS. All contributing project authors may
+# be found in the AUTHORS file in the root of the source tree.
+
+
+"""This is a tool to transform a crt file into a C/C++ header.
+
+Usage:
+generate_sslroots.py cert_file.crt [--verbose | -v] [--full_cert | -f]
+
+Arguments:
+ -v Print output while running.
+ -f Add public key and certificate name. Default is to skip and reduce
+ generated file size.
+"""
+
+import commands
+from optparse import OptionParser
+import os
+import re
+import string
+
+_GENERATED_FILE = 'sslroots.h'
+_PREFIX = '__generated__'
+_EXTENSION = '.crt'
+_SUBJECT_NAME_ARRAY = 'subject_name'
+_SUBJECT_NAME_VARIABLE = 'SubjectName'
+_PUBLIC_KEY_ARRAY = 'public_key'
+_PUBLIC_KEY_VARIABLE = 'PublicKey'
+_CERTIFICATE_ARRAY = 'certificate'
+_CERTIFICATE_VARIABLE = 'Certificate'
+_CERTIFICATE_SIZE_VARIABLE = 'CertificateSize'
+_INT_TYPE = 'size_t'
+_CHAR_TYPE = 'const unsigned char*'
+_VERBOSE = 'verbose'
+
+
+def main():
+ """The main entrypoint."""
+ parser = OptionParser('usage %prog FILE')
+ parser.add_option('-v', '--verbose', dest='verbose', action='store_true')
+ parser.add_option('-f', '--full_cert', dest='full_cert', action='store_true')
+ options, args = parser.parse_args()
+ if len(args) < 1:
+ parser.error('No crt file specified.')
+ return
+ root_dir = _SplitCrt(args[0], options)
+ _GenCFiles(root_dir, options)
+ _Cleanup(root_dir)
+
+
+def _SplitCrt(source_file, options):
+ sub_file_blocks = []
+ label_name = ''
+ root_dir = os.path.dirname(os.path.abspath(source_file)) + '/'
+ _PrintOutput(root_dir, options)
+ f = open(source_file)
+ for line in f:
+ if line.startswith('# Label: '):
+ sub_file_blocks.append(line)
+ label = re.search(r'\".*\"', line)
+ temp_label = label.group(0)
+ end = len(temp_label)-1
+ label_name = _SafeName(temp_label[1:end])
+ elif line.startswith('-----END CERTIFICATE-----'):
+ sub_file_blocks.append(line)
+ new_file_name = root_dir + _PREFIX + label_name + _EXTENSION
+ _PrintOutput('Generating: ' + new_file_name, options)
+ new_file = open(new_file_name, 'w')
+ for out_line in sub_file_blocks:
+ new_file.write(out_line)
+ new_file.close()
+ sub_file_blocks = []
+ else:
+ sub_file_blocks.append(line)
+ f.close()
+ return root_dir
+
+
+def _GenCFiles(root_dir, options):
+ output_header_file = open(root_dir + _GENERATED_FILE, 'w')
+ output_header_file.write(_CreateOutputHeader())
+ if options.full_cert:
+ subject_name_list = _CreateArraySectionHeader(_SUBJECT_NAME_VARIABLE,
+ _CHAR_TYPE, options)
+ public_key_list = _CreateArraySectionHeader(_PUBLIC_KEY_VARIABLE,
+ _CHAR_TYPE, options)
+ certificate_list = _CreateArraySectionHeader(_CERTIFICATE_VARIABLE,
+ _CHAR_TYPE, options)
+ certificate_size_list = _CreateArraySectionHeader(_CERTIFICATE_SIZE_VARIABLE,
+ _INT_TYPE, options)
+
+ for _, _, files in os.walk(root_dir):
+ for current_file in files:
+ if current_file.startswith(_PREFIX):
+ prefix_length = len(_PREFIX)
+ length = len(current_file) - len(_EXTENSION)
+ label = current_file[prefix_length:length]
+ filtered_output, cert_size = _CreateCertSection(root_dir, current_file,
+ label, options)
+ output_header_file.write(filtered_output + '\n\n\n')
+ if options.full_cert:
+ subject_name_list += _AddLabelToArray(label, _SUBJECT_NAME_ARRAY)
+ public_key_list += _AddLabelToArray(label, _PUBLIC_KEY_ARRAY)
+ certificate_list += _AddLabelToArray(label, _CERTIFICATE_ARRAY)
+ certificate_size_list += (' %s,\n') %(cert_size)
+
+ if options.full_cert:
+ subject_name_list += _CreateArraySectionFooter()
+ output_header_file.write(subject_name_list)
+ public_key_list += _CreateArraySectionFooter()
+ output_header_file.write(public_key_list)
+ certificate_list += _CreateArraySectionFooter()
+ output_header_file.write(certificate_list)
+ certificate_size_list += _CreateArraySectionFooter()
+ output_header_file.write(certificate_size_list)
+ output_header_file.close()
+
+
+def _Cleanup(root_dir):
+ for f in os.listdir(root_dir):
+ if f.startswith(_PREFIX):
+ os.remove(root_dir + f)
+
+
+def _CreateCertSection(root_dir, source_file, label, options):
+ command = 'openssl x509 -in %s%s -noout -C' %(root_dir, source_file)
+ _PrintOutput(command, options)
+ output = commands.getstatusoutput(command)[1]
+ renamed_output = output.replace('unsigned char XXX_',
+ 'const unsigned char ' + label + '_')
+ filtered_output = ''
+ cert_block = '^const unsigned char.*?};$'
+ prog = re.compile(cert_block, re.IGNORECASE | re.MULTILINE | re.DOTALL)
+ if not options.full_cert:
+ filtered_output = prog.sub('', renamed_output, count=2)
+ else:
+ filtered_output = renamed_output
+
+ cert_size_block = r'\d\d\d+'
+ prog2 = re.compile(cert_size_block, re.MULTILINE | re.VERBOSE)
+ result = prog2.findall(renamed_output)
+ cert_size = result[len(result) - 1]
+
+ return filtered_output, cert_size
+
+
+def _CreateOutputHeader():
+ output = ('// This file is the root certificates in C form that are needed to'
+ ' connect to\n// Google.\n\n'
+ '// It was generated with the following command line:\n'
+ '// > python tools/certs/generate_sslroots.py'
+ '\n// https://pki.google.com/roots.pem\n\n')
+ return output
+
+
+def _CreateArraySectionHeader(type_name, type_type, options):
+ output = ('const %s kSSLCert%sList[] = {\n') %(type_type, type_name)
+ _PrintOutput(output, options)
+ return output
+
+
+def _AddLabelToArray(label, type_name):
+ return ' %s_%s,\n' %(label, type_name)
+
+
+def _CreateArraySectionFooter():
+ return '};\n\n'
+
+
+def _SafeName(original_file_name):
+ bad_chars = ' -./\\()áéíőú'
+ replacement_chars = ''
+ for _ in bad_chars:
+ replacement_chars += '_'
+ translation_table = string.maketrans(bad_chars, replacement_chars)
+ return original_file_name.translate(translation_table)
+
+
+def _PrintOutput(output, options):
+ if options.verbose:
+ print output
+
+if __name__ == '__main__':
+ main()
diff --git a/tools/valgrind-webrtc/drmemory/suppressions.txt b/tools/valgrind-webrtc/drmemory/suppressions.txt
index 2addea53cf..1b0626c7ab 100644
--- a/tools/valgrind-webrtc/drmemory/suppressions.txt
+++ b/tools/valgrind-webrtc/drmemory/suppressions.txt
@@ -2,22 +2,6 @@
# It acts as a place holder for future additions for WebRTC.
# It must exist for the Python wrapper script to work properly.
-INVALID HEAP ARGUMENT
-name=https://code.google.com/p/webrtc/issues/detail?id=2321 (1)
-drmemorylib.dll!replace_operator_delete_array
-*!webrtc::scoped_array<short>::~scoped_array<short>
-*!webrtc::PushResampler::~PushResampler
-...
-*!testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test,void>
-
-INVALID HEAP ARGUMENT
-name=https://code.google.com/p/webrtc/issues/detail?id=2321 (2)
-drmemorylib.dll!replace_operator_delete_array
-*!webrtc::scoped_array<float>::~scoped_array<float>
-*!webrtc::PushSincResampler::~PushSincResampler
-...
-*!testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test,void>
-
GDI USAGE ERROR
name=https://code.google.com/p/webrtc/issues/detail?id=2323 (1)
system call NtGdiDeleteObjectApp
@@ -90,25 +74,6 @@ drmemorylib.dll!replace_operator_new
*!webrtc::test::UdpSocketManager_AddAndRemoveSocketDoesNotLeakMemory_Test::TestBody
*!testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test,void>
-INVALID HEAP ARGUMENT
-name=https://code.google.com/p/webrtc/issues/detail?id=2515 (1)
-drmemorylib.dll!replace_operator_delete_nothrow
-*!webrtc::scoped_array<short>::~scoped_array<short>
-*!webrtc::NetEqImpl::~NetEqImpl
-*!webrtc::NetEqImpl::`scalar deleting destructor'
-...
-*!testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test,void>
-
-INVALID HEAP ARGUMENT
-name=https://code.google.com/p/webrtc/issues/detail?id=2515 (2)
-drmemorylib.dll!replace_operator_delete_nothrow
-*!webrtc::scoped_array<short>::reset
-*!webrtc::NetEqImpl::SetSampleRateAndChannels
-*!webrtc::NetEqImpl::InsertPacketInternal
-*!webrtc::NetEqImpl::InsertPacket
-...
-*!testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test,void>
-
UNINITIALIZED READ
name=https://code.google.com/p/webrtc/issues/detail?id=2516
system call NtUserGetThreadDesktop parameter value #1
diff --git a/tools/valgrind-webrtc/gtest_exclude/libjingle_peerconnection_unittest.gtest-drmemory_win32.txt b/tools/valgrind-webrtc/gtest_exclude/libjingle_peerconnection_unittest.gtest-drmemory_win32.txt
index d41c231cf6..d041dbd526 100644
--- a/tools/valgrind-webrtc/gtest_exclude/libjingle_peerconnection_unittest.gtest-drmemory_win32.txt
+++ b/tools/valgrind-webrtc/gtest_exclude/libjingle_peerconnection_unittest.gtest-drmemory_win32.txt
@@ -1,7 +1,7 @@
# Flakily fails or crashes on Dr Memory Full.
# https://code.google.com/p/webrtc/issues/detail?id=3158
DtmfSenderTest.*
-JsepPeerConnectionP2PTestClient.*
+P2PTestConductor.*
PeerConnectionEndToEndTest.*
PeerConnectionInterfaceTest.*
# Issue 3453
diff --git a/tools/valgrind-webrtc/gtest_exclude/libjingle_peerconnection_unittest.gtest-memcheck.txt b/tools/valgrind-webrtc/gtest_exclude/libjingle_peerconnection_unittest.gtest-memcheck.txt
index 40974a2084..9cf29b8161 100644
--- a/tools/valgrind-webrtc/gtest_exclude/libjingle_peerconnection_unittest.gtest-memcheck.txt
+++ b/tools/valgrind-webrtc/gtest_exclude/libjingle_peerconnection_unittest.gtest-memcheck.txt
@@ -1,6 +1,6 @@
# Tests that are failing when run under memcheck.
# https://code.google.com/p/webrtc/issues/detail?id=4387
DtmfSenderTest.*
-JsepPeerConnectionP2PTestClient.*
+P2PTestConductor.*
PeerConnectionEndToEndTest.*
PeerConnectionInterfaceTest.*
diff --git a/tools/valgrind-webrtc/gtest_exclude/modules_tests.gtest-drmemory.txt b/tools/valgrind-webrtc/gtest_exclude/modules_tests.gtest-drmemory.txt
index e4f3ae2412..1642e3cf0e 100644
--- a/tools/valgrind-webrtc/gtest_exclude/modules_tests.gtest-drmemory.txt
+++ b/tools/valgrind-webrtc/gtest_exclude/modules_tests.gtest-drmemory.txt
@@ -8,6 +8,5 @@ AudioCodingModuleTest.TestStereo*
AudioCodingModuleTest.TestVADDTX*
AudioCodingModuleTest.TestOpus*
FecTest.FecTest
-TestVp8Impl.BaseUnitTest
VideoProcessorIntegrationTest.ProcessNoLossChangeBitRateVP8
VideoProcessorIntegrationTest.*VP9
diff --git a/tools/valgrind-webrtc/gtest_exclude/rtc_unittests.gtest-drmemory.txt b/tools/valgrind-webrtc/gtest_exclude/rtc_unittests.gtest-drmemory.txt
index 092b785a74..888062773d 100644
--- a/tools/valgrind-webrtc/gtest_exclude/rtc_unittests.gtest-drmemory.txt
+++ b/tools/valgrind-webrtc/gtest_exclude/rtc_unittests.gtest-drmemory.txt
@@ -5,3 +5,6 @@ PortAllocatorTest.*
PortTest.*
PseudoTcpTest.TestSendBothUseLargeWindowScale
SharedExclusiveLockTest.TestSharedShared
+# Fails on Dr Memory Light.
+# https://bugs.chromium.org/p/webrtc/issues/detail?id=5199
+ThreadTest.ThreeThreadsInvoke
diff --git a/tools/valgrind-webrtc/gtest_exclude/system_wrappers_unittests.gtest-drmemory_win32.txt b/tools/valgrind-webrtc/gtest_exclude/system_wrappers_unittests.gtest-drmemory_win32.txt
index 0bceb97c9d..a3344c70e5 100755..100644
--- a/tools/valgrind-webrtc/gtest_exclude/system_wrappers_unittests.gtest-drmemory_win32.txt
+++ b/tools/valgrind-webrtc/gtest_exclude/system_wrappers_unittests.gtest-drmemory_win32.txt
@@ -1,3 +1,4 @@
-# https://code.google.com/p/webrtc/issues/detail?id=2330
-ClockTest.NtpTime
-
+# https://code.google.com/p/webrtc/issues/detail?id=2330
+ClockTest.NtpTime
+CritSectTest.ThreadWakesOnce
+CritSectTest.ThreadWakesTwice
diff --git a/tools/valgrind-webrtc/gtest_exclude/video_engine_tests.gtest-drmemory_win32.txt b/tools/valgrind-webrtc/gtest_exclude/video_engine_tests.gtest-drmemory_win32.txt
index 309fd405b2..c4d953aef3 100644
--- a/tools/valgrind-webrtc/gtest_exclude/video_engine_tests.gtest-drmemory_win32.txt
+++ b/tools/valgrind-webrtc/gtest_exclude/video_engine_tests.gtest-drmemory_win32.txt
@@ -3,14 +3,23 @@
EndToEndTest.CanSwitchToUseAllSsrcs
EndToEndTest.SendsAndReceivesMultipleStreams
EndToEndTest.ReceivesAndRetransmitsNack
-# https://code.google.com/p/webrtc/issues/detail?id=3471
-VideoSendStreamTest.RetransmitsNackOverRtxWithPacing
+EndToEndTest.ReceivesTransportFeedback
# Flaky: https://code.google.com/p/webrtc/issues/detail?id=3552
EndToEndTest.RestartingSendStreamPreservesRtpState
EndToEndTest.RestartingSendStreamPreservesRtpStatesWithRtx
EndToEndTest.SendsAndReceivesH264
EndToEndTest.SendsAndReceivesVP9
+EndToEndTest.TransportFeedbackNotConfigured
+EndToEndTest.TransportSeqNumOnAudioAndVideo
VideoSendStreamTest.CanReconfigureToUseStartBitrateAbovePreviousMax
VideoSendStreamTest.ReconfigureBitratesSetsEncoderBitratesCorrectly
+# https://code.google.com/p/webrtc/issues/detail?id=5417
+VideoSendStreamTest.Vp9NonFlexMode_2Tl2SLayers
+VideoSendStreamTest.Vp9NonFlexMode_3Tl2SLayers
+VideoSendStreamTest.Vp9FlexModeRefCount
# https://code.google.com/p/webrtc/issues/detail?id=4979
EndToEndTest.AssignsTransportSequenceNumbers
+# Flaky: https://bugs.chromium.org/p/webrtc/issues/detail?id=5225
+BitrateEstimatorTest.SwitchesToASTThenBackToTOFForVideo
+# https://bugs.chromium.org/p/webrtc/issues/detail?id=5312
+RtcEventLogTest.DropOldEvents
diff --git a/tools/valgrind-webrtc/gtest_exclude/video_engine_tests.gtest-memcheck.txt b/tools/valgrind-webrtc/gtest_exclude/video_engine_tests.gtest-memcheck.txt
index 57387dcb2e..6faf218d35 100644
--- a/tools/valgrind-webrtc/gtest_exclude/video_engine_tests.gtest-memcheck.txt
+++ b/tools/valgrind-webrtc/gtest_exclude/video_engine_tests.gtest-memcheck.txt
@@ -6,3 +6,5 @@ VideoSendStreamTest.VP9FlexMode
# Flaky under memcheck (WebRTC issue 5134)
EndToEndTest.AssignsTransportSequenceNumbers
+# https://bugs.chromium.org/p/webrtc/issues/detail?id=5312
+RtcEventLogTest.DropOldEvents
diff --git a/tools/valgrind-webrtc/memcheck/suppressions.txt b/tools/valgrind-webrtc/memcheck/suppressions.txt
index 6291df20dd..9919522e83 100644
--- a/tools/valgrind-webrtc/memcheck/suppressions.txt
+++ b/tools/valgrind-webrtc/memcheck/suppressions.txt
@@ -232,159 +232,6 @@
}
{
- bug_332_1
- Memcheck:Uninitialized
- ...
- fun:_ZN6webrtc11VoEBaseImpl16NeedMorePlayDataEjhhjPvRj
- fun:_ZN6webrtc17AudioDeviceBuffer18RequestPlayoutDataEj
- fun:_ZN6webrtc21AudioDeviceLinuxPulse17PlayThreadProcessEv
- fun:_ZN6webrtc21AudioDeviceLinuxPulse14PlayThreadFuncEPv
- fun:_ZN6webrtc11ThreadPosix3RunEv
- fun:StartThread
-}
-
-{
- bug_332_2
- Memcheck:Unaddressable
- fun:memcpy@@GLIBC_2.14
- fun:_ZN6webrtc21AudioDeviceLinuxPulse16ReadRecordedDataEPKvm
- fun:_ZN6webrtc21AudioDeviceLinuxPulse16RecThreadProcessEv
- fun:_ZN6webrtc21AudioDeviceLinuxPulse13RecThreadFuncEPv
- fun:_ZN6webrtc11ThreadPosix3RunEv
- fun:StartThread
-}
-
-{
- bug_332_3
- Memcheck:Uninitialized
- fun:_ZN6webrtc11RTCPUtility21RTCPParseCommonHeaderEPKhS2_RNS0_16RTCPCommonHeaderE
- ...
- fun:_ZN6webrtc12RTCPReceiver10HandleSDESERNS_11RTCPUtility12RTCPParserV2E
- fun:_ZN6webrtc12RTCPReceiver18IncomingRTCPPacketERNS_8RTCPHelp21RTCPPacketInformationEPNS_11RTCPUtility12RTCPParserV2E
- fun:_ZN6webrtc17ModuleRtpRtcpImpl14IncomingPacketEPKht
- fun:_ZN6webrtc3voe7Channel18IncomingRTCPPacketEPKaiPKct
- fun:_ZN6webrtc16UdpTransportImpl20IncomingRTCPFunctionEPKaiPKNS_13SocketAddressE
- fun:_ZN6webrtc16UdpTransportImpl20IncomingRTCPCallbackEPvPKaiPKNS_13SocketAddressE
- fun:_ZN6webrtc14UdpSocketPosix11HasIncomingEv
- fun:_ZN6webrtc25UdpSocketManagerPosixImpl7ProcessEv
- fun:_ZN6webrtc25UdpSocketManagerPosixImpl3RunEPv
- fun:_ZN6webrtc11ThreadPosix3RunEv
- fun:StartThread
-}
-
-{
- bug_332_4
- Memcheck:Uninitialized
- ...
- fun:_ZN6webrtc3voe10AudioLevel12ComputeLevelERKNS_10AudioFrameE
- fun:_ZN6webrtc3voe11OutputMixer28DoOperationsOnCombinedSignalEv
- fun:_ZN6webrtc11VoEBaseImpl16NeedMorePlayDataEjhhjPvRj
- fun:_ZN6webrtc17AudioDeviceBuffer18RequestPlayoutDataEj
- fun:_ZN6webrtc21AudioDeviceLinuxPulse17PlayThreadProcessEv
- fun:_ZN6webrtc21AudioDeviceLinuxPulse14PlayThreadFuncEPv
- fun:_ZN6webrtc11ThreadPosix3RunEv
- fun:StartThread
-}
-
-{
- bug_332_5
- Memcheck:Uninitialized
- fun:WebRtcSpl_UpBy2ShortToInt
- fun:WebRtcSpl_Resample8khzTo22khz
- fun:_ZN6webrtc9Resampler4PushEPKsiPsiRi
- fun:_ZN6webrtc3voe16RemixAndResampleERKNS_10AudioFrameEPNS_9ResamplerEPS1_
- fun:_ZN6webrtc3voe11OutputMixer13GetMixedAudioEiiPNS_10AudioFrameE
- fun:_ZN6webrtc11VoEBaseImpl16NeedMorePlayDataEjhhjPvRj
- fun:_ZN6webrtc17AudioDeviceBuffer18RequestPlayoutDataEj
- fun:_ZN6webrtc21AudioDeviceLinuxPulse17PlayThreadProcessEv
- fun:_ZN6webrtc21AudioDeviceLinuxPulse14PlayThreadFuncEPv
- fun:_ZN6webrtc11ThreadPosix3RunEv
- fun:StartThread
-}
-
-{
- bug 332_6
- Memcheck:Param
- socketcall.sendto(msg)
- obj:*libpthread-*.so
- fun:_ZN6webrtc14UdpSocketPosix6SendToEPKaiRKNS_13SocketAddressE
- fun:_ZN6webrtc16UdpTransportImpl14SendRTCPPacketEiPKvi
- fun:_ZN6webrtc3voe7Channel14SendRTCPPacketEiPKvi
- ...
- fun:_ZN6webrtc17ModuleRtpRtcpImpl14IncomingPacketEPKht
- fun:_ZN6webrtc3voe7Channel17IncomingRTPPacketEPKaiPKct
- fun:_ZN6webrtc16UdpTransportImpl19IncomingRTPFunctionEPKaiPKNS_13SocketAddressE
- fun:_ZN6webrtc16UdpTransportImpl19IncomingRTPCallbackEPvPKaiPKNS_13SocketAddressE
- fun:_ZN6webrtc14UdpSocketPosix11HasIncomingEv
- fun:_ZN6webrtc25UdpSocketManagerPosixImpl7ProcessEv
- fun:_ZN6webrtc25UdpSocketManagerPosixImpl3RunEPv
- fun:_ZN6webrtc11ThreadPosix3RunEv
- fun:StartThread
-}
-
-
-{
- bug_332_7
- Memcheck:Param
- socketcall.sendto(msg)
- obj:*libpthread-*.so
- fun:_ZN6webrtc14UdpSocketPosix6SendToEPKaiRKNS_13SocketAddressE
- fun:_ZN6webrtc16UdpTransportImpl10SendPacketEiPKvi
- ...
- fun:_ZN6webrtc21AudioDeviceLinuxPulse16ReadRecordedDataEPKvm
- fun:_ZN6webrtc21AudioDeviceLinuxPulse16RecThreadProcessEv
- fun:_ZN6webrtc21AudioDeviceLinuxPulse13RecThreadFuncEPv
- fun:_ZN6webrtc11ThreadPosix3RunEv
- fun:StartThread
-}
-
-{
- bug_332_8
- Memcheck:Param
- socketcall.sendto(msg)
- obj:*libpthread-*.so
- fun:_ZN6webrtc14UdpSocketPosix6SendToEPKaiRKNS_13SocketAddressE
- fun:_ZN6webrtc16UdpTransportImpl14SendRTCPPacketEiPKvi
- fun:_ZN6webrtc3voe7Channel14SendRTCPPacketEiPKvi
- fun:_ZN6webrtc10RTCPSender13SendToNetworkEPKht
- fun:_ZN6webrtc10RTCPSender8SendRTCPEjiPKtbm
- fun:_ZN6webrtc17ModuleRtpRtcpImpl7ProcessEv
- fun:_ZN6webrtc17ProcessThreadImpl7ProcessEv
- fun:_ZN6webrtc17ProcessThreadImpl3RunEPv
- fun:_ZN6webrtc11ThreadPosix3RunEv
- fun:StartThread
-}
-
-{
- bug_332_9
- Memcheck:Uninitialized
- ...
- fun:_ZN6webrtc17AudioDeviceBuffer19DeliverRecordedDataEv
- fun:_ZN6webrtc21AudioDeviceLinuxPulse19ProcessRecordedDataEPajj
- fun:_ZN6webrtc21AudioDeviceLinuxPulse16ReadRecordedDataEPKvm
- fun:_ZN6webrtc21AudioDeviceLinuxPulse16RecThreadProcessEv
- fun:_ZN6webrtc21AudioDeviceLinuxPulse13RecThreadFuncEPv
- fun:_ZN6webrtc11ThreadPosix3RunEv
- fun:StartThread
-}
-
-{
- bug_332_10
- Memcheck:Uninitialized
- ...
- fun:_ZN6webrtc12RTCPReceiver18IncomingRTCPPacketERNS_8RTCPHelp21RTCPPacketInformationEPNS_11RTCPUtility12RTCPParserV2E
- fun:_ZN6webrtc17ModuleRtpRtcpImpl14IncomingPacketEPKht
- fun:_ZN6webrtc3voe7Channel18IncomingRTCPPacketEPKaiPKct
- fun:_ZN6webrtc16UdpTransportImpl20IncomingRTCPFunctionEPKaiPKNS_13SocketAddressE
- fun:_ZN6webrtc16UdpTransportImpl20IncomingRTCPCallbackEPvPKaiPKNS_13SocketAddressE
- fun:_ZN6webrtc14UdpSocketPosix11HasIncomingEv
- fun:_ZN6webrtc25UdpSocketManagerPosixImpl7ProcessEv
- fun:_ZN6webrtc25UdpSocketManagerPosixImpl3RunEPv
- fun:_ZN6webrtc11ThreadPosix3RunEv
- fun:StartThread
-}
-
-{
bug_891
Memcheck:Unaddressable
fun:XShmPutImage