1// Copyright (C) 2016 The Android Open Source Project 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15//########################################################### 16// SettingsLib Shell app just for Robolectric test target. # 17//########################################################### 18 19package { 20 // See: http://go/android-license-faq 21 // A large-scale-change added 'default_applicable_licenses' to import 22 // all of the 'license_kinds' from "frameworks_base_license" 23 // to get the below license kinds: 24 // SPDX-license-identifier-Apache-2.0 25 default_applicable_licenses: ["frameworks_base_license"], 26} 27 28android_app { 29 name: "SettingsLibShell", 30 use_resource_processor: true, 31 defaults: ["SettingsLibDefaults"], 32 platform_apis: true, 33 34 privileged: true, 35 36 resource_dirs: ["res"], 37} 38 39//########################################################### 40// SettingsLib Robolectric test target. # 41//########################################################### 42android_robolectric_test { 43 name: "SettingsLibRoboTests", 44 srcs: [ 45 "src/**/*.java", 46 "src/**/*.kt", 47 ], 48 static_libs: [ 49 "Settings_robolectric_meta_service_file", 50 "Robolectric_shadows_androidx_fragment_upstream", 51 "SettingsLib-robo-testutils", 52 "androidx.fragment_fragment", 53 "androidx.test.core", 54 "androidx.core_core", 55 "flag-junit", 56 "settingslib_media_flags_lib", 57 "settingslib_illustrationpreference_flags_lib", 58 "testng", // TODO: remove once JUnit on Android provides assertThrows 59 ], 60 java_resource_dirs: ["config"], 61 instrumentation_for: "SettingsLibShell", 62 coverage_libs: ["SettingsLib"], 63 test_options: { 64 timeout: 36000, 65 }, 66 upstream: true, 67 68 strict_mode: false, 69} 70 71java_genrule { 72 name: "Settings_robolectric_meta_service_file", 73 out: ["robolectric_meta_service_file.jar"], 74 tools: ["soong_zip"], 75 cmd: "mkdir -p $(genDir)/META-INF/services/ && touch $(genDir)/META-INF/services/org.robolectric.internal.ShadowProvider &&" + 76 "echo -e 'org.robolectric.Shadows' >> $(genDir)/META-INF/services/org.robolectric.internal.ShadowProvider && " + 77 "echo -e 'org.robolectric.shadows.multidex.Shadows' >> $(genDir)/META-INF/services/org.robolectric.internal.ShadowProvider && " + 78 "echo -e 'org.robolectric.shadows.httpclient.Shadows' >> $(genDir)/META-INF/services/org.robolectric.internal.ShadowProvider && " + 79 //"echo -e 'com.android.settings.testutils.shadow.Shadows' >> $(genDir)/META-INF/services/org.robolectric.internal.ShadowProvider && " + 80 "echo -e 'com.android.settingslib.testutils.shadow.Shadows' >> $(genDir)/META-INF/services/org.robolectric.internal.ShadowProvider && " + 81 "$(location soong_zip) -o $(out) -C $(genDir) -D $(genDir)/META-INF/services/", 82} 83 84java_library { 85 name: "SettingsLib-robo-testutils", 86 srcs: [ 87 "testutils/com/android/settingslib/testutils/**/*.java", 88 ], 89 javacflags: [ 90 "-Aorg.robolectric.annotation.processing.shadowPackage=com.android.settingslib.testutils.shadow", 91 "-Aorg.robolectric.annotation.processing.sdkCheckMode=ERROR", 92 // Uncomment the below to debug annotation processors not firing. 93 //"-verbose", 94 //"-XprintRounds", 95 //"-XprintProcessorInfo", 96 //"-Xlint", 97 //"-J-verbose", 98 ], 99 plugins: [ 100 "auto_value_plugin_1.9", 101 "auto_value_builder_plugin_1.9", 102 "Robolectric_processor_upstream", 103 ], 104 libs: [ 105 "Robolectric_all-target_upstream", 106 "mockito-robolectric-prebuilt", 107 "truth", 108 ], 109} 110