Add PRESUBMIT test to make sure all valgrind dependencies are listed.

Add a PRESUBMIT test to make sure new valgrind runtime dependencies are
listed in tools_webrtc/valgrind/valgrind-webrtc.gni, so that they are
isolated and uploaded to swarming.

TBR=phoglund@webrtc.org

Bug: webrtc:7249
Change-Id: I090b790da0b6dd7c1e76c20f96e40df9000cbd62
Reviewed-on: https://webrtc-review.googlesource.com/42740
Commit-Queue: Edward Lemur <ehmaldonado@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21933}
diff --git a/tools_webrtc/PRESUBMIT.py b/tools_webrtc/PRESUBMIT.py
index 2f7b835..c2dfd0e 100644
--- a/tools_webrtc/PRESUBMIT.py
+++ b/tools_webrtc/PRESUBMIT.py
@@ -6,6 +6,9 @@
 # in the file PATENTS.  All contributing project authors may
 # be found in the AUTHORS file in the root of the source tree.
 
+import os
+
+
 def _LicenseHeader(input_api):
   """Returns the license header regexp."""
   # Accept any year number from 2003 to the current year
@@ -27,11 +30,34 @@
   }
   return license_header
 
+def _CheckValgrindFiles(input_api, output_api):
+  """Check that valgrind-webrtc.gni contains all existing files."""
+  valgrind_dir = os.path.join('tools_webrtc', 'valgrind')
+  with open(os.path.join('valgrind', 'valgrind-webrtc.gni')) as f:
+    valgrind_webrtc = f.read()
+
+  results = []
+  for f in input_api.AffectedFiles():
+    f = f.LocalPath()
+    if (f.startswith(valgrind_dir)
+        and f not in valgrind_webrtc
+        and not f.endswith('valgrind-webrtc.gni')):
+      results.append(' * %s\n' % f)
+
+  if results:
+    results = [output_api.PresubmitError(
+      'The following files are not listed in '
+      'tools_webrtc/valgrind/valgrind-webrt.gni. Please add them, so they can '
+      'be isolated and uploaded to swarming:\n' +
+      ''.join(file_path for file_path in results))]
+  return results
+
 def _CommonChecks(input_api, output_api):
   """Checks common to both upload and commit."""
   results = []
   results.extend(input_api.canned_checks.CheckLicense(
       input_api, output_api, _LicenseHeader(input_api)))
+  results.extend(_CheckValgrindFiles(input_api, output_api))
   return results
 
 def CheckChangeOnUpload(input_api, output_api):