Add presubmit check to guard against assert() usage.

Example of error reporting:

Usage of assert() has been detected in the following files, please use
RTC_DCHECK() instead.
 Files:
  rtc_base/thread.cc

Bug: webrtc:6779
Change-Id: Iae08c3d7ddcc0449073752cadca19b3cf662892c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/225549
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34532}
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 21875f6..6c4a04c 100755
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -1042,6 +1042,8 @@
     results.extend(
         CheckAbslMemoryInclude(input_api, output_api, non_third_party_sources))
     results.extend(
+        CheckAssertUsage(input_api, output_api, non_third_party_sources))
+    results.extend(
         CheckBannedAbslMakeUnique(input_api, output_api,
                                   non_third_party_sources))
     results.extend(
@@ -1158,6 +1160,28 @@
     return []
 
 
+def CheckAssertUsage(input_api, output_api, source_file_filter):
+    pattern = input_api.re.compile(r'\bassert\(')
+    file_filter = lambda f: (f.LocalPath().endswith(('.cc', '.h', '.m', '.mm'))
+                             and source_file_filter(f))
+
+    files = []
+    for f in input_api.AffectedFiles(include_deletes=False,
+                                     file_filter=file_filter):
+        for _, line in f.ChangedContents():
+            if pattern.search(line):
+                files.append(f.LocalPath())
+                break
+
+    if len(files):
+        return [
+            output_api.PresubmitError(
+                'Usage of assert() has been detected in the following files, '
+                'please use RTC_DCHECK() instead.\n Files:', files)
+        ]
+    return []
+
+
 def CheckAbslMemoryInclude(input_api, output_api, source_file_filter):
     pattern = input_api.re.compile(r'^#include\s*"absl/memory/memory.h"',
                                    input_api.re.MULTILINE)