Adds impeller_unittests to run_tests.py (#31280)

diff --git a/DEPS b/DEPS
index 0f6513a..a209ae6 100644
--- a/DEPS
+++ b/DEPS
@@ -110,7 +110,7 @@
   'src': 'https://github.com/flutter/buildroot.git' + '@' + '79643299bd052c53631b8b200bb582e8badb2708',
 
   'src/flutter/impeller':
-  Var('github_git') + '/flutter/impeller' + '@' + '6bace472c39b838d11ff644e7303236928a1a8e7',
+  Var('github_git') + '/flutter/impeller' + '@' + 'c55014e747541b9a2cca15e6b2cb1b1ef9123da3',
 
    # Fuchsia compatibility
    #
diff --git a/testing/run_tests.py b/testing/run_tests.py
index c2b8573..ec205ea 100755
--- a/testing/run_tests.py
+++ b/testing/run_tests.py
@@ -233,6 +233,10 @@
     RunEngineExecutable(build_dir, 'flutter_linux_unittests', filter, shuffle_flags, coverage=coverage)
     RunEngineExecutable(build_dir, 'flutter_glfw_unittests', filter, shuffle_flags, coverage=coverage)
 
+  # Impeller tests are only supported on macOS for now.
+  if IsMac():
+    RunEngineExecutable(build_dir, 'impeller_unittests', filter, shuffle_flags, coverage=coverage)
+
 
 def RunEngineBenchmarks(build_dir, filter):
   print("Running Engine Benchmarks.")
diff --git a/tools/gn b/tools/gn
index b32de95..abf2836 100755
--- a/tools/gn
+++ b/tools/gn
@@ -251,7 +251,6 @@
       if sys.platform.startswith(('cygwin', 'win')):
         gn_args['dart_use_fallback_root_certificates'] = True
 
-
     # Make sure host_cpu matches the bit width of target_cpu on x86.
     if gn_args['target_cpu'] == 'x86':
       gn_args['host_cpu'] = 'x86'
@@ -414,6 +413,9 @@
       with open(os.path.join(os.path.dirname(__file__), 'fuchsia/target_api_level')) as f:
         gn_args['fuchsia_target_api_level'] = int(f.read().strip())
 
+    # Impeller flags.
+    gn_args['impeller_enable_playground'] = args.enable_impeller_playground
+
     return gn_args
 
 def parse_args(args):
@@ -525,6 +527,10 @@
 
   parser.add_argument('--fuchsia-target-api-level', dest='fuchsia_target_api_level')
 
+  # Impeller flags.
+  parser.add_argument('--enable-impeller-playground', default=False, action='store_true',
+                      help='Whether impeller unit tests run in playground mode')
+
   # Sanitizers.
   parser.add_argument('--asan', default=False, action='store_true')
   parser.add_argument('--lsan', default=False, action='store_true')