Paul Duffin 2a637cf9b0 Ensure that android.test tests pass
It looks as though the tests in test-runner/tests have not actually been
run successfully for over 7 years. As a result they have degraded. This
change fixes the tests so that they will pass and provides instructions
on how to run them.

TestCaseUtilTest.testGetTestCaseNamesForTestSuiteWithSuiteMethod
    This fails because it expected 2 names to be returned but only
    returns 0. The reason for that is although TwoTestsInTestSuite has a
    Test suite() method that does create a TestSuite with two tests the
    TestCaseUtil method does not actually call suite(). Instead, because
    TwoTestsInTestSuite is a TestSuite it just calls the tests() method
    on it which returns an empty Enumeration because TwoTestsInTestSuite
    is empty.

    The support for "static Test suite() {}" is broken but fixing this
    will affect the behavior of InstrumentationTestRunner which is used
    in thousands of different places both in and outside Google and so
    could cause untold problems.

TestSuiteBuilderTest.testIncludeAllPackagesUnderHere
    Reformat the list, one per line and then add missing name
    "testPublicConstructor".

ErrorTest/FailingTest
    These tests are not meant to be run on their own, only as part of a
    separate test. The RunAsPartOfSeparateTest annotation was added to
    allow these to be excluded using notAnnotation as shown in the
    instructions for running the tests.

Bug: 30188076
Test: followed new instructions in test-runner/tests/Android.mk
Change-Id: I60e7bee9cd08a9ab7777a2578fc58da772de5c1f
2017-06-22 12:58:58 +01:00

38 lines
1.3 KiB
Makefile

# Copyright 2010, 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)
# We only want this apk build for tests.
#
# Run the tests using the following commands:
# adb -r install ${ANDROID_PRODUCT_OUT}/data/app/FrameworkTestRunnerTests/FrameworkTestRunnerTests.apk
# adb shell am instrument \
-e notAnnotation android.test.suitebuilder.examples.error.RunAsPartOfSeparateTest \
-w com.android.frameworks.testrunner.tests/android.test.InstrumentationTestRunner
#
LOCAL_MODULE_TAGS := tests
LOCAL_JAVA_LIBRARIES := android.test.runner
LOCAL_STATIC_JAVA_LIBRARIES := junit legacy-android-test
# Include all test java files.
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := FrameworkTestRunnerTests
include $(BUILD_PACKAGE)