Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(135)

Unified Diff: tools/metrics/histograms/find_unmapped_histograms.py

Issue 1143323006: Histograms.xml python script housekeeping (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bad_message
Patch Set: Fix imports (sadface) Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/metrics/common/presubmit_util.py ('k') | tools/metrics/histograms/histogram_ownership.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/metrics/histograms/find_unmapped_histograms.py
diff --git a/tools/metrics/histograms/find_unmapped_histograms.py b/tools/metrics/histograms/find_unmapped_histograms.py
index 31e41b5066fd2a4a4f5ac4b828af44b57dd743c1..d17870263b63af72304a9073b69d88c882d566d5 100644
--- a/tools/metrics/histograms/find_unmapped_histograms.py
+++ b/tools/metrics/histograms/find_unmapped_histograms.py
@@ -10,15 +10,19 @@ trials are entirely ignored by this script.
"""
-import commands
-import extract_histograms
import hashlib
import logging
import optparse
import os
import re
+import subprocess
import sys
+sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common'))
+import path_util
+
+import extract_histograms
+
ADJACENT_C_STRING_REGEX = re.compile(r"""
(" # Opening quotation mark
@@ -43,6 +47,17 @@ HISTOGRAM_REGEX = re.compile(r"""
""", re.VERBOSE)
+def RunGit(command):
+ """Run a git subcommand, returning its output."""
+ # On Windows, use shell=True to get PATH interpretation.
+ command = ['git'] + command
+ logging.info(' '.join(command))
+ shell = (os.name == 'nt')
+ proc = subprocess.Popen(command, shell=shell, stdout=subprocess.PIPE)
+ out = proc.communicate()[0].strip()
+ return out
+
+
class DirectoryNotFoundException(Exception):
"""Base class to distinguish locally defined exceptions from standard ones."""
def __init__(self, msg):
@@ -52,27 +67,6 @@ class DirectoryNotFoundException(Exception):
return self.msg
-def findDefaultRoot():
- """Find the root of the chromium repo, in case the script is run from the
- histograms dir.
-
- Returns:
- string: path to the src dir of the repo.
-
- Raises:
- DirectoryNotFoundException if the target directory cannot be found.
- """
- path = os.getcwd()
- while path:
- head, tail = os.path.split(path)
- if tail == 'src':
- return path
- if path == head:
- break
- path = head
- raise DirectoryNotFoundException('Could not find src/ dir')
-
-
def collapseAdjacentCStrings(string):
"""Collapses any adjacent C strings into a single string.
@@ -130,7 +124,7 @@ def readChromiumHistograms():
names that might vary during a single run of the app.
Returns:
- A set cotaining any found literal histogram names.
+ A set containing any found literal histogram names.
"""
logging.info('Scanning Chromium source for histograms...')
@@ -138,7 +132,7 @@ def readChromiumHistograms():
# Examples:
# 'path/to/foo.cc:420: UMA_HISTOGRAM_COUNTS_100("FooGroup.FooName",'
# 'path/to/bar.cc:632: UMA_HISTOGRAM_ENUMERATION('
- locations = commands.getoutput('git gs UMA_HISTOGRAM').split('\n')
+ locations = RunGit(['gs', 'UMA_HISTOGRAM']).split('\n')
filenames = set([location.split(':')[0] for location in locations])
histograms = set()
@@ -152,7 +146,7 @@ def readChromiumHistograms():
histogram = collapseAdjacentCStrings(histogram)
# Must begin and end with a quotation mark.
- if histogram[0] != '"' or histogram[-1] != '"':
+ if not histogram or histogram[0] != '"' or histogram[-1] != '"':
logNonLiteralHistogram(filename, histogram)
continue
@@ -192,11 +186,11 @@ def hashHistogramName(name):
def main():
# Find default paths.
- default_root = findDefaultRoot()
- default_histograms_path = os.path.join(
- default_root, 'tools/metrics/histograms/histograms.xml')
- default_extra_histograms_path = os.path.join(
- default_root, 'tools/histograms/histograms.xml')
+ default_root = path_util.GetInputFile('/')
+ default_histograms_path = path_util.GetInputFile(
+ 'tools/metrics/histograms/histograms.xml')
+ default_extra_histograms_path = path_util.GetInputFile(
+ 'tools/histograms/histograms.xml')
# Parse command line options
parser = optparse.OptionParser()
« no previous file with comments | « tools/metrics/common/presubmit_util.py ('k') | tools/metrics/histograms/histogram_ownership.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698