OSDN Git Service

Allow building Android builds locally
authorShubham Ajmera <shubhamajmera@google.com>
Wed, 8 Mar 2017 19:03:22 +0000 (11:03 -0800)
committerShubham Ajmera <shubhamajmera@google.com>
Wed, 8 Mar 2017 22:05:48 +0000 (14:05 -0800)
Test: manual
Change-Id: I2f8edd952287b5e4b6bc9f87df91d322af5c4a5a

test/testrunner/run_build_test_target.py [new file with mode: 0755]
test/testrunner/target_config.py

diff --git a/test/testrunner/run_build_test_target.py b/test/testrunner/run_build_test_target.py
new file mode 100755 (executable)
index 0000000..0cd1dde
--- /dev/null
@@ -0,0 +1,58 @@
+#!/usr/bin/env python
+#
+# Copyright 2017, The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import argparse
+import os
+import subprocess
+
+from target_config import target_config
+import env
+
+parser = argparse.ArgumentParser()
+parser.add_argument('--build-target', required=True, dest='build_target')
+parser.add_argument('-j', default='1', dest='n_threads')
+options = parser.parse_args()
+
+target = target_config[options.build_target]
+n_threads = options.n_threads
+custom_env = target.get('env', {})
+custom_env['SOONG_ALLOW_MISSING_DEPENDENCIES'] = 'true'
+print custom_env
+os.environ.update(custom_env)
+
+
+if target.get('target'):
+  build_command = 'make'
+  build_command += ' -j' + str(n_threads)
+  build_command += ' -C ' + env.ANDROID_BUILD_TOP
+  build_command += ' ' + target.get('target')
+  print build_command.split()
+  if subprocess.call(build_command.split()):
+    sys.exit(1)
+
+else:
+  run_test_command = [os.path.join(env.ANDROID_BUILD_TOP,
+                                   'art/test/testrunner/testrunner.py')]
+  run_test_command += target.get('flags', [])
+  run_test_command += ['-j', str(n_threads)]
+  run_test_command += ['-b']
+  run_test_command += ['--verbose']
+
+  print run_test_command
+  if subprocess.call(run_test_command):
+    sys.exit(1)
+
+sys.exit(0)
index 2cafc44..5387d6a 100644 (file)
 target_config = {
-    "art-interpreter" : {
-        "flags" : ["--interpreter"],
-        "env" : {
-            "ART_USE_READ_BARRIER" : "false"
+    'art-test' : {
+        'flags' : [],
+        'env' : {
+            'ART_USE_READ_BARRIER' : 'false'
         }
     },
-    "art-interpreter-access-checks" : {
-        "flags" : ["--interp-ac"],
-        "env" : {
-            "ART_USE_READ_BARRIER" : "false"
+    'art-interpreter' : {
+        'flags' : ['--interpreter'],
+        'env' : {
+            'ART_USE_READ_BARRIER' : 'false'
         }
     },
-    "art-jit" : {
-        "flags" : ["--jit"],
-        "env" : {
-            "ART_USE_READ_BARRIER" : "false"
+    'art-interpreter-access-checks' : {
+        'flags' : ['--interp-ac'],
+        'env' : {
+            'ART_USE_READ_BARRIER' : 'false'
         }
     },
-    "art-optimizing" : {
-        "flags" : ["--optimizing"],
-        "env" : {
-            "ART_USE_READ_BARRIER" : "false"
+    'art-jit' : {
+        'flags' : ['--jit'],
+        'env' : {
+            'ART_USE_READ_BARRIER' : 'false'
         }
-    },
-    "art-gcstress-gcverify": {
-        "flags" : ["--gcstress",
-                   "--gcverify"],
-        "env" : {
-            "ART_USE_READ_BARRIER" : "false",
-            "ART_DEFAULT_GC_TYPE" : "SS"
+    },
+    'art-gcstress-gcverify': {
+        'flags' : ['--gcstress',
+                   '--gcverify'],
+        'env' : {
+            'ART_USE_READ_BARRIER' : 'false',
+            'ART_DEFAULT_GC_TYPE' : 'SS'
+        }
+    },
+    'art-interpreter-gcstress' : {
+        'flags': ['--interpreter',
+                  '--gcstress'],
+        'env' : {
+            'ART_USE_READ_BARRIER' : 'false',
+            'ART_DEFAULT_GC_TYPE' : 'SS'
+        }
+    },
+    'art-optimizing-gcstress' : {
+        'flags': ['--gcstress',
+                  '--optimizing'],
+        'env' : {
+            'ART_USE_READ_BARRIER' : 'false',
+            'ART_DEFAULT_GC_TYPE' : 'SS'
+        }
+    },
+    'art-jit-gcstress' : {
+        'flags': ['--jit',
+                  '--gcstress'],
+        'env' : {
+            'ART_USE_READ_BARRIER' : 'false'
+        }
+    },
+    'art-read-barrier' : {
+        'flags': ['--interpreter',
+                  '--optimizing'],
+        'env' : {
+            'ART_USE_READ_BARRIER' : 'true',
+            'ART_HEAP_POISONING' : 'true'
+        }
+    },
+    'art-read-barrier-gcstress' : {
+        'flags' : ['--interpreter',
+                   '--optimizing',
+                   '--gcstress'],
+        'env' : {
+            'ART_USE_READ_BARRIER' : 'true',
+            'ART_HEAP_POISONING' : 'true'
+        }
+    },
+    'art-read-barrier-table-lookup' : {
+        'flags' : ['--interpreter',
+                   '--optimizing'],
+        'env' : {
+            'ART_USE_READ_BARRIER' : 'true',
+            'ART_READ_BARRIER_TYPE' : 'TABLELOOKUP',
+            'ART_HEAP_POISONING' : 'true'
+        }
+    },
+    'art-debug-gc' : {
+        'flags' : ['--interpreter',
+                   '--optimizing'],
+        'env' : {
+            'ART_TEST_DEBUG_GC' : 'true',
+            'ART_USE_READ_BARRIER' : 'false'
+        }
+    },
+    'art-ss-gc' : {
+        'flags' : ['--interpreter',
+                   '--optimizing',
+                   '--jit'],
+        'env' : {
+            'ART_DEFAULT_GC_TYPE' : 'SS',
+            'ART_USE_READ_BARRIER' : 'false'
+        }
+    },
+    'art-gss-gc' : {
+        'flags' : ['--interpreter',
+                   '--optimizing',
+                   '--jit'],
+        'env' : {
+            'ART_DEFAULT_GC_TYPE' : 'GSS',
+            'ART_USE_READ_BARRIER' : 'false'
+        }
+    },
+    'art-ss-gc-tlab' : {
+        'flags' : ['--interpreter',
+                   '--optimizing',
+                   '--jit'],
+        'env' : {
+            'ART_DEFAULT_GC_TYPE' : 'SS',
+            'ART_USE_TLAB' : 'true',
+            'ART_USE_READ_BARRIER' : 'false'
         }
     },
-    "art-interpreter-gcstress" : {
-        "flags": ["--interpreter",
-                  "--gcstress"],
-        "env" : {
-            "ART_USE_READ_BARRIER" : "false",
-            "ART_DEFAULT_GC_TYPE" : "SS"
+    'art-gss-gc-tlab' : {
+        'flags' : ['--interpreter',
+                   '--optimizing',
+                   '--jit'],
+        'env' : {
+            'ART_DEFAULT_GC_TYPE' : 'GSS',
+            'ART_USE_TLAB' : 'true',
+            'ART_USE_READ_BARRIER' : 'false'
         }
     },
-    "art-optimizing-gcstress" : {
-        "flags": ["--gcstress",
-                  "--optimizing"],
-        "env" : {
-            "ART_USE_READ_BARRIER" : "false",
-            "ART_DEFAULT_GC_TYPE" : "SS"
+    'art-tracing' : {
+        'flags' : ['--trace'],
+        'env' : {
+            'ART_USE_READ_BARRIER' : 'false'
         }
     },
-    "art-jit-gcstress" : {
-        "flags": ["--jit",
-                  "--gcstress"],
-        "env" : {
-            "ART_USE_READ_BARRIER" : "false"
+    'art-interpreter-tracing' : {
+        'flags' : ['--interpreter',
+                   '--trace'],
+        'env' : {
+            'ART_USE_READ_BARRIER' : 'false',
         }
     },
-    "art-read-barrier" : {
-        "flags": ["--interpreter",
-                  "--optimizing"],
-        "env" : {
-            "ART_USE_READ_BARRIER" : "true",
-            "ART_HEAP_POISONING" : "true"
+    'art-forcecopy' : {
+        'flags' : ['--forcecopy'],
+        'env' : {
+            'ART_USE_READ_BARRIER' : 'false',
         }
     },
-    "art-read-barrier-gcstress" : {
-        "flags" : ["--interpreter",
-                   "--optimizing",
-                   "--gcstress"],
-        "env" : {
-            "ART_USE_READ_BARRIER" : "true",
-            "ART_HEAP_POISONING" : "true"
+    'art-no-prebuild' : {
+        'flags' : ['--no-prebuild'],
+        'env' : {
+            'ART_USE_READ_BARRIER' : 'false',
         }
     },
-    "art-read-barrier-table-lookup" : {
-        "flags" : ["--interpreter",
-                   "--optimizing"],
-        "env" : {
-            "ART_USE_READ_BARRIER" : "true",
-            "ART_READ_BARRIER_TYPE" : "TABLELOOKUP",
-            "ART_HEAP_POISONING" : "true"
+    'art-no-image' : {
+        'flags' : ['--no-image'],
+        'env' : {
+            'ART_USE_READ_BARRIER' : 'false',
         }
     },
-    "art-debug-gc" : {
-        "flags" : ["--interpreter",
-                   "--optimizing"],
-        "env" : {
-            "ART_TEST_DEBUG_GC" : "true",
-            "ART_USE_READ_BARRIER" : "false"
+    'art-interpreter-no-image' : {
+        'flags' : ['--interpreter',
+                   '--no-image'],
+        'env' : {
+            'ART_USE_READ_BARRIER' : 'false',
         }
     },
-    "art-ss-gc" : {
-        "flags" : ["--interpreter",
-                 "--optimizing",
-                 "--jit"],
-        "env" : {
-            "ART_DEFAULT_GC_TYPE" : "SS",
-            "ART_USE_READ_BARRIER" : "false"
+    'art-relocate-no-patchoat' : {
+        'flags' : ['--relocate-npatchoat'],
+        'env' : {
+            'ART_USE_READ_BARRIER' : 'false',
         }
     },
-    "art-gss-gc" : {
-        "flags" : ["--interpreter",
-                 "--optimizing",
-                 "--jit"],
-        "env" : {
-            "ART_DEFAULT_GC_TYPE" : "GSS",
-            "ART_USE_READ_BARRIER" : "false"
+    'art-no-dex2oat' : {
+        'flags' : ['--no-dex2oat'],
+        'env' : {
+            'ART_USE_READ_BARRIER' : 'false',
         }
     },
-    "art-ss-gc-tlab" : {
-        "flags" : ["--interpreter",
-                   "--optimizing",
-                   "--jit"],
-        "env" : {
-            "ART_DEFAULT_GC_TYPE" : "SS",
-            "ART_USE_TLAB" : "true",
-            "ART_USE_READ_BARRIER" : "false"
+    'art-heap-poisoning' : {
+        'flags' : ['--interpreter',
+                   '--optimizing'],
+        'env' : {
+            'ART_USE_READ_BARRIER' : 'false',
+            'ART_HEAP_POISONING' : 'true'
         }
     },
-    "art-gss-gc-tlab" : {
-        "flags" : ["--interpreter",
-                   "--optimizing",
-                   "--jit"],
-        "env" : {
-            "ART_DEFAULT_GC_TYPE" : "GSS",
-            "ART_USE_TLAB" : "true",
-            "ART_USE_READ_BARRIER" : "false"
+    'art-gtest' : {
+        'target' :  'test-art-gtest',
+        'env' : {
+            'ART_USE_READ_BARRIER' : 'true'
         }
     },
-    "art-tracing" : {
-        "flags" : ["--trace"],
-        "env" : {
-            "ART_USE_READ_BARRIER" : "false"
+    'art-gtest-read-barrier': {
+        'target' :  'test-art-gtest',
+        'env' : {
+            'ART_USE_READ_BARRIER' : 'true',
+            'ART_HEAP_POISONING' : 'true'
         }
     },
-    "art-interpreter-tracing" : {
-        "flags" : ["--interpreter",
-                   "--trace"],
-        "env" : {
-            "ART_USE_READ_BARRIER" : "false",
+    'art-gtest-read-barrier-table-lookup': {
+        'target' :  'test-art-gtest',
+        'env': {
+            'ART_USE_READ_BARRIER' : 'true',
+            'ART_READ_BARRIER_TYPE' : 'TABLELOOKUP',
+            'ART_HEAP_POISONING' : 'true'
         }
     },
-    "art-forcecopy" : {
-        "flags" : ["--forcecopy"],
-        "env" : {
-            "ART_USE_READ_BARRIER" : "false",
+    'art-gtest-ss-gc': {
+        'target' :  'test-art-gtest',
+        'env': {
+            'ART_DEFAULT_GC_TYPE' : 'SS',
+            'ART_USE_READ_BARRIER' : 'false'
         }
     },
-    "art-no-prebuild" : {
-        "flags" : ["--no-prebuild"],
-        "env" : {
-            "ART_USE_READ_BARRIER" : "false",
+    'art-gtest-gss-gc': {
+        'target' :  'test-art-gtest',
+        'env' : {
+            'ART_DEFAULT_GC_TYPE' : 'GSS',
+            'ART_USE_READ_BARRIER' : 'false'
         }
     },
-    "art-no-image" : {
-        "flags" : ["--no-image"],
-        "env" : {
-            "ART_USE_READ_BARRIER" : "false",
+    'art-gtest-ss-gc-tlab': {
+        'target' :  'test-art-gtest',
+        'env': {
+            'ART_DEFAULT_GC_TYPE' : 'SS',
+            'ART_USE_TLAB' : 'true',
+            'ART_USE_READ_BARRIER' : 'false',
         }
     },
-    "art-interpreter-no-image" : {
-        "flags" : ["--interpreter",
-                   "--no-image"],
-        "env" : {
-            "ART_USE_READ_BARRIER" : "false",
+    'art-gtest-gss-gc-tlab': {
+        'target' :  'test-art-gtest',
+        'env': {
+            'ART_DEFAULT_GC_TYPE' : 'GSS',
+            'ART_USE_TLAB' : 'true',
+            'ART_USE_READ_BARRIER' : 'false'
         }
     },
-    "art-relocate-no-patchoat" : {
-        "flags" : ["--relocate-npatchoat"],
-        "env" : {
-            "ART_USE_READ_BARRIER" : "false",
+    'art-gtest-valgrind32': {
+        'target' : 'valgrind-test-art-host32',
+        'env': {
+            'ART_USE_READ_BARRIER' : 'false'
         }
     },
-    "art-no-dex2oat" : {
-        "flags" : ["--no-dex2oat"],
-        "env" : {
-            "ART_USE_READ_BARRIER" : "false",
+    'art-gtest-valgrind64': {
+        'target' : 'valgrind-test-art-host64',
+        'env': {
+            'ART_USE_READ_BARRIER' : 'false'
         }
     },
-    "art-heap-poisoning" : {
-        "flags" : ["--interpreter",
-                   "--optimizing"],
-        "env" : {
-            "ART_USE_READ_BARRIER" : "false",
-            "ART_HEAP_POISONING" : "true"
+    'art-gtest-heap-poisoning': {
+        'target' : 'valgrind-test-art-host64',
+        'env' : {
+            'ART_HEAP_POISONING' : 'true',
+            'ART_USE_READ_BARRIER' : 'false'
         }
     }
 }