Add build_test.sh, split common parts of soong_ui.bash
Move common microfactory functions to cmd/microfactory/microfactory.bash
so that they can be used to build both soong_ui for normal build and
multiproduct_kati for build system tests.
Test: m -j
Test: build/soong/build_test.bash
Change-Id: I9512642d846ce54d05a027b6d33a2b3029b3f90b
diff --git a/build_test.bash b/build_test.bash
new file mode 100755
index 0000000..f833366
--- /dev/null
+++ b/build_test.bash
@@ -0,0 +1,34 @@
+#!/bin/bash -eu
+#
+# Copyright 2017 Google Inc. All rights reserved.
+#
+# 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.
+
+#
+# This file is used in our continous build infrastructure to run a variety of
+# tests related to the build system.
+#
+# Currently, it's used to build and run multiproduct_kati, so it'll attempt
+# to build ninja files for every product in the tree. I expect this to
+# evolve as we find interesting things to test or track performance for.
+#
+
+# To track how long we took to startup. %N isn't supported on Darwin, but
+# that's detected in the Go code, which skips calculating the startup time.
+export TRACE_BEGIN_SOONG=$(date +%s%N)
+
+export TOP=$(cd $(dirname ${BASH_SOURCE[0]})/../..; PWD= /bin/pwd)
+source "${TOP}/build/soong/cmd/microfactory/microfactory.bash"
+
+build_go multiproduct_kati android/soong/cmd/multiproduct_kati
+exec "$(getoutdir)/multiproduct_kati" "$@"