buildCts.py was the central script that generated all the test package XMLs each time CTS was built. This had a couple problems: 1. All the XML files for ~40 packages needed to be made every time CTS was made. Even if those packages were not touched at all. 2. Couldn't shard the XML generation process across the available cores on a machine. A pool was added to the python script, but it was set to a fixed number. This change moves the test XML generation into a smaller Java program called "cts-java-scanner" and the doclet it relies upon to scan the Java files into "cts-java-scanner-doclet.jar". The output of the scanner like "cts-native-scanner" for native EXEs is piped to the existing cts-xml-generator to produce the test XMLs. New CTS specific rules replace the standard BUILD_PACKAGE and BUILD_HOST_JAVA_LIBRARY. They just add extra rules for the package XML. The BUILD_CTS_PACKAGE rule also adds a rule for copying the "package.apk" to something more like "CtsFooTestCases.apk" to the test case out directory. All the apks, exes, and xmls are now thrown into a "cts-testcases" directory, before they are copied to the final CTS distribution. This change should prevent rebuilding the XMLs unnecessarily and make rebuilding CTS quicker while writing tests. There are still the libcore tests that are always rebuilt, but they can be adapted to fit into this model someday... Change-Id: I52a916aa37fd679057e2709bb0ccec694c9fca01
36 lines
1.1 KiB
Makefile
36 lines
1.1 KiB
Makefile
# Copyright (C) 2008 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.
|
|
|
|
LOCAL_PATH:= $(call my-dir)
|
|
|
|
include $(CLEAR_VARS)
|
|
|
|
# don't include this package in any target
|
|
LOCAL_MODULE_TAGS := optional
|
|
# and when built explicitly put it in the data partition
|
|
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
|
|
|
|
LOCAL_JAVA_LIBRARIES := android.test.runner
|
|
|
|
LOCAL_SRC_FILES := $(call all-java-files-under, src)
|
|
|
|
LOCAL_PACKAGE_NAME := CtsNetTestCases
|
|
|
|
LOCAL_INSTRUMENTATION_FOR := CtsTestStubs
|
|
|
|
# uncomment when dalvik.annotation.Test* are removed or part of SDK
|
|
#LOCAL_SDK_VERSION := current
|
|
|
|
include $(BUILD_CTS_PACKAGE)
|