def __init__(self, argv): self.argv = argv self.parser = tcr.getParser() group = self.parser.add_option_group(CodeUploader._OPTION_GROUP_NAME) group.add_option("--no-cpplint", action="store_true", default=False, dest="no_cpplint", help="Do not run cpplint before upload.") group.add_option("--cppcheck", action="store_true", default=False, dest="cppcheck", help="Run cppcheck before upload.") group.add_option( "--check-missing-tests", action="store_true", default=False, dest="check_missing_tests", help="Check missing tests for added modules before upload.") self.parser.parse_args(argv[1:]) self.options, self.args = tcr.setInitparser(self.parser).parse_args( argv[1:]) self.current_source_dir = find_blade_root_dir() self.cpplint_err_msgs = [] self.issue_dict = common.load_issue_info(self.current_source_dir)
def filter_out_exceptions(self, files): result = [] blade_root_dir = common.find_blade_root_dir() for f in files: ff = os.path.normpath(os.path.join(os.environ['PWD'], f)) for e in _EXCEPTION_DIRS: epath = os.path.normpath(os.path.join(blade_root_dir, e)) if not ff.startswith(epath): result.append(f) return result
def init_regex(self): forbidden_fun_file = "%s/makeinclude/funcs.txt" % common.find_blade_root_dir( ) try: file_obj = open(forbidden_fun_file, "r") except IOError: _error_exit("Please checkout %s first." % forbidden_fun_file) match_str = [] for line in file_obj: match_str.append(r"\b%s\b" % line[:-1]) self.forbidden_fun_regexes = [re.compile(p) for p in match_str]
def __main__(): diff_files = common.get_diff_files(sys.argv[1:]) cc_files = common.filter_cc_files(diff_files) if cc_files: blade_root_dir = common.find_blade_root_dir() old_err_msgs, new_err_msgs = cpplint_diff(blade_root_dir, cc_files) if old_err_msgs: common.warning("%s" % "\n".join(old_err_msgs)) if new_err_msgs: common.error("%s" % ("\n".join(new_err_msgs))) sys.exit(1) sys.exit(0)
def cppcheck(args): cppcheck_bin = os.path.join(os.path.dirname(__file__), 'cppcheck') options = [ '--enable=warning,style,performance,portability,information,missingInclude', '--template="{file}:{line}: {severity}: {id}: {message}"', '--inline-suppr', '--suppress=class_X_Y', '--suppress=toomanyconfigs', '--suppress=unusedPrivateFunction', '--suppress=unmatchedSuppression', '--suppress=noConstructor:*app/qzap/common/base/callback_impl.h', '--suppress=stlSize:*app/qzap/common/cpp/include/wup_qzap_proto_search_broker.h', '--suppress=*:*thirdparty/*.*', '-DGTEST_HAS_PARAM_TEST=1', '-DGTEST_HAS_DEATH_TEST=1', '-DGTEST_HAS_STD_WSTRING=1', '-DGTEST_HAS_DEATH_TEST=1', '-UGTEST_OS_WINDOWS', '-U_MSC_VER', '-U_WIN32', '-Umax', '-Umin', '-D__GNUC__=4', '-D__x86_64', '-D__i386__', '-j4', '-I %s' % common.find_blade_root_dir() ] cmd = "%s %s %s" % (cppcheck_bin, ' '.join(options), ' '.join(args)) return subprocess.call(cmd, shell=True)
def __init__(self, options): self.options = options self.issue = options.issue self.issue_info_url = "%s%s" % (DEFAULT_REVIEW_INFO_URL, options.issue) self.issue_url = "%s%s" % (DEFAULT_REVIEW_URL, options.issue) self.user = os.environ.get('USER') or os.environ.get('USERNAME') self.issue_info = json.load(urllib.urlopen(self.issue_info_url)) if not self.issue_info['successfully']: print self.issue_info['successfully'] error_exit("Invalid issue or server down") self.issue_info_detail = self.issue_info["requestsWithPagerInfo"][ "requests"][0] self.local_svn_info = SvnInfo('.') self.remote_svn_info = SvnInfo(self.local_svn_info.get_remote_path()) self.svn_status = svn_status('.') self.blade_root_dir = find_blade_root_dir()