// Copyright (C) 2016 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. //########################################################### // SettingsLib Shell app just for Robolectric test target. # //########################################################### package { // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "frameworks_base_license" // to get the below license kinds: // SPDX-license-identifier-Apache-2.0 default_applicable_licenses: ["frameworks_base_license"], } android_app { name: "SettingsLibShell", use_resource_processor: true, defaults: ["SettingsLibDefaults"], platform_apis: true, privileged: true, resource_dirs: ["res"], } //########################################################### // SettingsLib Robolectric test target. # //########################################################### android_robolectric_test { name: "SettingsLibRoboTests", srcs: [ "src/**/*.java", "src/**/*.kt", ], static_libs: [ "Settings_robolectric_meta_service_file", "Robolectric_shadows_androidx_fragment_upstream", "SettingsLib-robo-testutils", "androidx.fragment_fragment", "androidx.test.core", "androidx.core_core", "flag-junit", "settingslib_media_flags_lib", "settingslib_illustrationpreference_flags_lib", "testng", // TODO: remove once JUnit on Android provides assertThrows ], java_resource_dirs: ["config"], instrumentation_for: "SettingsLibShell", coverage_libs: ["SettingsLib"], test_options: { timeout: 36000, }, upstream: true, strict_mode: false, } java_genrule { name: "Settings_robolectric_meta_service_file", out: ["robolectric_meta_service_file.jar"], tools: ["soong_zip"], cmd: "mkdir -p $(genDir)/META-INF/services/ && touch $(genDir)/META-INF/services/org.robolectric.internal.ShadowProvider &&" + "echo -e 'org.robolectric.Shadows' >> $(genDir)/META-INF/services/org.robolectric.internal.ShadowProvider && " + "echo -e 'org.robolectric.shadows.multidex.Shadows' >> $(genDir)/META-INF/services/org.robolectric.internal.ShadowProvider && " + "echo -e 'org.robolectric.shadows.httpclient.Shadows' >> $(genDir)/META-INF/services/org.robolectric.internal.ShadowProvider && " + //"echo -e 'com.android.settings.testutils.shadow.Shadows' >> $(genDir)/META-INF/services/org.robolectric.internal.ShadowProvider && " + "echo -e 'com.android.settingslib.testutils.shadow.Shadows' >> $(genDir)/META-INF/services/org.robolectric.internal.ShadowProvider && " + "$(location soong_zip) -o $(out) -C $(genDir) -D $(genDir)/META-INF/services/", } java_library { name: "SettingsLib-robo-testutils", srcs: [ "testutils/com/android/settingslib/testutils/**/*.java", ], javacflags: [ "-Aorg.robolectric.annotation.processing.shadowPackage=com.android.settingslib.testutils.shadow", "-Aorg.robolectric.annotation.processing.sdkCheckMode=ERROR", // Uncomment the below to debug annotation processors not firing. //"-verbose", //"-XprintRounds", //"-XprintProcessorInfo", //"-Xlint", //"-J-verbose", ], plugins: [ "auto_value_plugin_1.9", "auto_value_builder_plugin_1.9", "Robolectric_processor_upstream", ], libs: [ "Robolectric_all-target_upstream", "mockito-robolectric-prebuilt", "truth", ], }