Add test for memory benchmark in golem

Bug: 121018500
Change-Id: I944f0c57f16ec19124beefc3410905cada7155e2
diff --git a/tools/run_bootstrap_benchmark.py b/tools/run_bootstrap_benchmark.py
index e12051b..bc07347 100755
--- a/tools/run_bootstrap_benchmark.py
+++ b/tools/run_bootstrap_benchmark.py
@@ -12,6 +12,7 @@
 import toolhelper
 import utils
 
+MEMORY_XMX_LIMIT_BENCHMARK = 270
 
 def parse_arguments(argv):
   parser = argparse.ArgumentParser(
@@ -20,6 +21,10 @@
       help = 'Link in third party dependencies.',
       default = False,
       action = 'store_true')
+  parser.add_argument('--limit-memory-runtime-test',
+      help = 'Run in a specific memory limit.',
+      default = False,
+      action = 'store_true')
   return parser.parse_args(argv)
 
 
@@ -47,16 +52,29 @@
     d8_r8_output = os.path.join(temp, 'd8r8.zip')
     d8_pg_output = os.path.join(temp, 'd8pg.zip')
 
+    run_memory_test = options.limit_memory_runtime_test
+
+    java_args = (['-Xmx%sM' % MEMORY_XMX_LIMIT_BENCHMARK]
+                 if run_memory_test else [])
+
+    benchmark_name = "MemoryR8Pinned" if run_memory_test else "BootstrapR8"
+
     return_code = minify_tool.minify_tool(
       input_jar=utils.PINNED_R8_JAR,
       output_jar=r8_output,
       debug=False,
       build=False,
       track_memory_file=memory_file,
-      benchmark_name="BootstrapR8")
+      benchmark_name=benchmark_name,
+      java_args=java_args)
+
     if return_code != 0:
       sys.exit(return_code)
 
+    if run_memory_test:
+      # We are not tracking code-size, so return early.
+      sys.exit(0)
+
     dex(r8_output, d8_r8_output)
     print "BootstrapR8(CodeSize):", utils.uncompressed_size(r8_output)
     print "BootstrapR8Dex(CodeSize):", utils.uncompressed_size(d8_r8_output)