Add some tests for coverage am: 685a48d6b0
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/libtextclassifier/+/13773941
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: If05be4c32ce1383f0609caca5d824af5df8a6efd
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..5843fa6
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,44 @@
+//
+// Copyright (C) 2021 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.
+
+package {
+ default_applicable_licenses: ["external_libtextclassifier_license"],
+}
+
+// Added automatically by a large-scale-change that took the approach of
+// 'apply every license found to every target'. While this makes sure we respect
+// every license restriction, it may not be entirely correct.
+//
+// e.g. GPL in an MIT project might only apply to the contrib/ directory.
+//
+// Please consider splitting the single license below into multiple licenses,
+// taking care not to lose any license_kind information, and overriding the
+// default license using the 'licenses: [...]' property on targets as needed.
+//
+// For unused files, consider creating a 'fileGroup' with "//visibility:private"
+// to attach the license to, and including a comment whether the files may be
+// used in the current project.
+// See: http://go/android-license-faq
+license {
+ name: "external_libtextclassifier_license",
+ visibility: [":__subpackages__"],
+ license_kinds: [
+ "SPDX-license-identifier-Apache-2.0",
+ "legacy_unencumbered",
+ ],
+ license_text: [
+ "NOTICE",
+ ],
+}
diff --git a/abseil-cpp/Android.bp b/abseil-cpp/Android.bp
index 4eaae5a..b6958c1 100644
--- a/abseil-cpp/Android.bp
+++ b/abseil-cpp/Android.bp
@@ -1,3 +1,35 @@
+package {
+ default_applicable_licenses: [
+ "external_libtextclassifier_abseil-cpp_license",
+ ],
+}
+
+// Added automatically by a large-scale-change that took the approach of
+// 'apply every license found to every target'. While this makes sure we respect
+// every license restriction, it may not be entirely correct.
+//
+// e.g. GPL in an MIT project might only apply to the contrib/ directory.
+//
+// Please consider splitting the single license below into multiple licenses,
+// taking care not to lose any license_kind information, and overriding the
+// default license using the 'licenses: [...]' property on targets as needed.
+//
+// For unused files, consider creating a 'fileGroup' with "//visibility:private"
+// to attach the license to, and including a comment whether the files may be
+// used in the current project.
+// See: http://go/android-license-faq
+license {
+ name: "external_libtextclassifier_abseil-cpp_license",
+ visibility: [":__subpackages__"],
+ license_kinds: [
+ "SPDX-license-identifier-Apache-2.0",
+ "legacy_unencumbered",
+ ],
+ license_text: [
+ "LICENSE",
+ ],
+}
+
cc_library_static {
name: "libtextclassifier_abseil",
export_include_dirs: ["."],
diff --git a/coverage/Android.bp b/coverage/Android.bp
index 699c629..f9f5c88 100644
--- a/coverage/Android.bp
+++ b/coverage/Android.bp
@@ -1,3 +1,12 @@
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "external_libtextclassifier_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-Apache-2.0
+ default_applicable_licenses: ["external_libtextclassifier_license"],
+}
+
android_library {
name: "TextClassifierCoverageLib",
diff --git a/java/Android.bp b/java/Android.bp
index 163512e..ca34a66 100644
--- a/java/Android.bp
+++ b/java/Android.bp
@@ -15,6 +15,15 @@
//
// A standalone TextClassifierService app for testing.
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "external_libtextclassifier_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-Apache-2.0
+ default_applicable_licenses: ["external_libtextclassifier_license"],
+}
+
android_app {
name: "TextClassifierService",
static_libs: ["TextClassifierServiceLib"],
diff --git a/java/tests/instrumentation/Android.bp b/java/tests/instrumentation/Android.bp
index 43cb864..871be1e 100644
--- a/java/tests/instrumentation/Android.bp
+++ b/java/tests/instrumentation/Android.bp
@@ -14,6 +14,15 @@
// limitations under the License.
//
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "external_libtextclassifier_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-Apache-2.0
+ default_applicable_licenses: ["external_libtextclassifier_license"],
+}
+
android_test {
name: "TextClassifierServiceTest",
diff --git a/java/tests/instrumentation/src/com/android/textclassifier/DefaultTextClassifierServiceTest.java b/java/tests/instrumentation/src/com/android/textclassifier/DefaultTextClassifierServiceTest.java
index 1c4f7f8..d248eb0 100644
--- a/java/tests/instrumentation/src/com/android/textclassifier/DefaultTextClassifierServiceTest.java
+++ b/java/tests/instrumentation/src/com/android/textclassifier/DefaultTextClassifierServiceTest.java
@@ -232,7 +232,7 @@
.collect(Collectors.toList()));
assertThat(loggedEvents).hasSize(1);
TextClassifierApiUsageReported loggedEvent = loggedEvents.get(0);
- assertThat(loggedEvent.getLatencyMillis()).isGreaterThan(0L);
+ assertThat(loggedEvent.getLatencyMillis()).isGreaterThan(0);
assertThat(loggedEvent.getApiType()).isEqualTo(expectedApiType);
assertThat(loggedEvent.getResultType()).isEqualTo(expectedResultApiType);
assertThat(loggedEvent.getSessionId()).isEqualTo(SESSION_ID);
diff --git a/java/tests/instrumentation/src/com/android/textclassifier/TextClassifierApiTest.java b/java/tests/instrumentation/src/com/android/textclassifier/TextClassifierApiTest.java
index 27ea7f0..6d6887a 100644
--- a/java/tests/instrumentation/src/com/android/textclassifier/TextClassifierApiTest.java
+++ b/java/tests/instrumentation/src/com/android/textclassifier/TextClassifierApiTest.java
@@ -115,7 +115,7 @@
assertThat(links).hasSize(1);
assertThat(links.get(0).getEntityCount()).isGreaterThan(0);
assertThat(links.get(0).getEntity(0)).isEqualTo(TextClassifier.TYPE_URL);
- assertThat(links.get(0).getConfidenceScore(TextClassifier.TYPE_URL)).isGreaterThan(0f);
+ assertThat(links.get(0).getConfidenceScore(TextClassifier.TYPE_URL)).isGreaterThan(0);
}
@Test
@@ -127,7 +127,7 @@
assertThat(textLanguage.getLocaleHypothesisCount()).isGreaterThan(0);
assertThat(textLanguage.getLocale(0).getLanguage()).isEqualTo("ja");
- assertThat(textLanguage.getConfidenceScore(ULocale.JAPANESE)).isGreaterThan(0f);
+ assertThat(textLanguage.getConfidenceScore(ULocale.JAPANESE)).isGreaterThan(0);
}
@Test
diff --git a/java/tests/instrumentation/src/com/android/textclassifier/common/statsd/TextClassifierApiUsageLoggerTest.java b/java/tests/instrumentation/src/com/android/textclassifier/common/statsd/TextClassifierApiUsageLoggerTest.java
index b9b7a95..e3e74b5 100644
--- a/java/tests/instrumentation/src/com/android/textclassifier/common/statsd/TextClassifierApiUsageLoggerTest.java
+++ b/java/tests/instrumentation/src/com/android/textclassifier/common/statsd/TextClassifierApiUsageLoggerTest.java
@@ -90,7 +90,7 @@
TextClassifierApiUsageReported event = loggedEvents.get(0);
assertThat(event.getApiType()).isEqualTo(ApiType.SUGGEST_SELECTION);
assertThat(event.getResultType()).isEqualTo(ResultType.SUCCESS);
- assertThat(event.getLatencyMillis()).isGreaterThan(0L);
+ assertThat(event.getLatencyMillis()).isGreaterThan(0);
assertThat(event.getSessionId()).isEqualTo(SESSION_ID);
}
@@ -119,7 +119,7 @@
TextClassifierApiUsageReported event = loggedEvents.get(0);
assertThat(event.getApiType()).isEqualTo(ApiType.CLASSIFY_TEXT);
assertThat(event.getResultType()).isEqualTo(ResultType.FAIL);
- assertThat(event.getLatencyMillis()).isGreaterThan(0L);
+ assertThat(event.getLatencyMillis()).isGreaterThan(0);
assertThat(event.getSessionId()).isEqualTo(SESSION_ID);
}
diff --git a/java/tests/instrumentation/src/com/android/textclassifier/subjects/EntitySubject.java b/java/tests/instrumentation/src/com/android/textclassifier/subjects/EntitySubject.java
new file mode 100644
index 0000000..38b53d4
--- /dev/null
+++ b/java/tests/instrumentation/src/com/android/textclassifier/subjects/EntitySubject.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2018 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.
+ */
+
+package com.android.textclassifier.subjects;
+
+import static com.google.common.truth.Truth.assertAbout;
+
+import com.android.textclassifier.Entity;
+import com.google.common.truth.FailureMetadata;
+import com.google.common.truth.Subject;
+import javax.annotation.Nullable;
+
+/** Test helper for checking {@link com.android.textclassifier.Entity} results. */
+public final class EntitySubject extends Subject {
+
+ private static final float TOLERANCE = 0.0001f;
+
+ private final Entity entity;
+
+ public static EntitySubject assertThat(@Nullable Entity entity) {
+ return assertAbout(EntitySubject::new).that(entity);
+ }
+
+ private EntitySubject(FailureMetadata failureMetadata, @Nullable Entity entity) {
+ super(failureMetadata, entity);
+ this.entity = entity;
+ }
+
+ public void isMatchWithinTolerance(@Nullable Entity entity) {
+ if (!entity.getEntityType().equals(this.entity.getEntityType())) {
+ failWithActual("expected to have type", entity.getEntityType());
+ }
+ check("expected to have confidence score")
+ .that(entity.getScore())
+ .isWithin(TOLERANCE)
+ .of(this.entity.getScore());
+ }
+}
diff --git a/jni/Android.bp b/jni/Android.bp
index 5e7487b..4300d8e 100644
--- a/jni/Android.bp
+++ b/jni/Android.bp
@@ -12,6 +12,15 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "external_libtextclassifier_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-Apache-2.0
+ default_applicable_licenses: ["external_libtextclassifier_license"],
+}
+
java_library_static {
name: "libtextclassifier-java",
srcs: ["**/*.java"],
diff --git a/native/Android.bp b/native/Android.bp
index b521c4a..944acc5 100644
--- a/native/Android.bp
+++ b/native/Android.bp
@@ -12,9 +12,19 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "external_libtextclassifier_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-Apache-2.0
+ default_applicable_licenses: ["external_libtextclassifier_license"],
+}
+
cc_library_headers {
name: "libtextclassifier_hash_headers",
vendor_available: true,
+ host_supported: true,
export_include_dirs: ["."],
apex_available: [
"//apex_available:platform",
@@ -25,6 +35,8 @@
cc_defaults {
name: "libtextclassifier_hash_defaults",
+ vendor_available: true,
+ host_supported: true,
srcs: [
"utils/hash/farmhash.cc",
],
@@ -46,7 +58,6 @@
cc_library_static {
name: "libtextclassifier_hash_static",
defaults: ["libtextclassifier_hash_defaults"],
- vendor_available: true,
sdk_version: "current",
stl: "libc++_static",
apex_available: [
@@ -100,6 +111,7 @@
},
header_libs: [
+ "jni_headers",
"tensorflow_headers",
"flatbuffer_headers",
"libtextclassifier_flatbuffer_headers",
@@ -204,9 +216,6 @@
],
compile_multilib: "prefer32",
-
- // A workaround for code coverage. See b/166040889#comment23
- sdk_variant_only: true,
}
// ------------------------------------
diff --git a/notification/Android.bp b/notification/Android.bp
index 966941d..277985b 100644
--- a/notification/Android.bp
+++ b/notification/Android.bp
@@ -15,6 +15,15 @@
//
// A library that contains all java classes with the AndroidManifest.
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "external_libtextclassifier_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-Apache-2.0
+ default_applicable_licenses: ["external_libtextclassifier_license"],
+}
+
android_library {
name: "TextClassifierNotificationLib",
static_libs: ["TextClassifierNotificationLibNoManifest"],
diff --git a/notification/tests/Android.bp b/notification/tests/Android.bp
index d504496..903f6c4 100644
--- a/notification/tests/Android.bp
+++ b/notification/tests/Android.bp
@@ -14,6 +14,15 @@
// limitations under the License.
//
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "external_libtextclassifier_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-Apache-2.0
+ default_applicable_licenses: ["external_libtextclassifier_license"],
+}
+
android_test {
name: "TextClassifierNotificationTests",