diff options
author | cushon <cushon@google.com> | 2018-04-06 19:07:41 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-04-06 19:09:24 -0700 |
commit | 7f63bec55ef34fbaaab5f61987e77512543eece3 (patch) | |
tree | dfe05b272b5b0340431c4b84f434be9e2cc8676b /src/java_tools | |
parent | 71ee3b23e3a3a7ef11ba400eaface395881d57c8 (diff) |
Improve golden tests
PiperOrigin-RevId: 191970818
Diffstat (limited to 'src/java_tools')
13 files changed, 129 insertions, 15 deletions
diff --git a/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/ImportDepsChecker.java b/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/ImportDepsChecker.java index a6045ce49c..22e7a5b48d 100644 --- a/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/ImportDepsChecker.java +++ b/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/ImportDepsChecker.java @@ -145,7 +145,8 @@ public final class ImportDepsChecker implements Closeable { .append(incompleteClasses.size()) .append('\n') .append("missing_members=") - .append(missingMembers.size()); + .append(missingMembers.size()) + .append('\n'); } return builder.toString(); } diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/BUILD b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/BUILD index 19a70eb328..b5aed26104 100644 --- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/BUILD +++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/BUILD @@ -216,3 +216,32 @@ java_test( "//third_party/bazel/src/test/java/com/google/devtools/build/lib/testutil", ], ) + +java_library( + name = "empty", + srcs = [], +) + +sh_test( + name = "string_annotation_value_test", + srcs = ["golden_test.sh"], + args = [ + "$(location string_annotation_value_test.txt)", + "199", + "$(location //third_party/bazel/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps:ImportDepsChecker)", + "--fail_on_errors", + "--bootclasspath_entry", + "$(location :libempty.jar)", + "--classpath_entry", + "$(location //third_party/bazel/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata:libStringAnnotation.jar)", + "--input", + "$(location //third_party/bazel/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata:libOneAnnotationValue.jar)", + ], + data = [ + ":libempty.jar", + "//third_party/bazel/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps:ImportDepsChecker", + "//third_party/bazel/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps:string_annotation_value_test.txt", + "//third_party/bazel/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata:libOneAnnotationValue.jar", + "//third_party/bazel/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata:libStringAnnotation.jar", + ], +) diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.txt index 5a4e67edfe..b98187cf15 100644 --- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.txt +++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.txt @@ -1,6 +1,12 @@ +Missing java.io.PrintStream +Missing java.lang.Byte +Missing java.lang.Class +Missing java.lang.Enum Missing java.lang.Exception Missing java.lang.Object Missing java.lang.String +Missing java.lang.SuppressWarnings +Missing java.lang.System Missing java.lang.annotation.Annotation Missing java.lang.annotation.ElementType Missing java.lang.annotation.Retention @@ -15,6 +21,9 @@ Missing java.util.Objects Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Client missing ancestor: java.lang.Object resolution failure path: com.google.devtools.build.importdeps.testdata.Library -> java.lang.Object +Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Client$EnumTest + missing ancestor: java.lang.Enum + resolution failure path: java.lang.Enum Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.Library missing ancestor: java.lang.Object resolution failure path: java.lang.Object @@ -54,6 +63,9 @@ Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata. Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation missing ancestor: java.lang.Object resolution failure path: java.lang.Object +Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationFlag + missing ancestor: java.lang.Enum + resolution failure path: java.lang.Enum Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation missing ancestor: java.lang.Object resolution failure path: java.lang.Object @@ -81,7 +93,9 @@ Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata. Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.LibraryInterface$Func missing ancestor: java.lang.Object resolution failure path: java.lang.Object +Missing member 'name' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=name, descriptor=()Ljava/lang/String; +Missing member 'ordinal' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=ordinal, descriptor=()I ===Total=== -missing=14 -incomplete=23 -missing_members=0
\ No newline at end of file +missing=20 +incomplete=25 +missing_members=2 diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_annotation_missing.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_annotation_missing.txt index 60af5de912..4ea1d8db01 100644 --- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_annotation_missing.txt +++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_annotation_missing.txt @@ -1,5 +1,6 @@ Missing com.google.devtools.build.importdeps.testdata.LibraryAnnotations Missing com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation +Missing com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationFlag Missing com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation Missing com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation Missing com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation @@ -7,6 +8,6 @@ Missing com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodA Missing com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation Missing com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation ===Total=== -missing=8 +missing=9 incomplete=0 -missing_members=0
\ No newline at end of file +missing_members=0 diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_exception_missing.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_exception_missing.txt index 767f4eb0b9..17760b2cb9 100644 --- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_exception_missing.txt +++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_exception_missing.txt @@ -2,4 +2,4 @@ Missing com.google.devtools.build.importdeps.testdata.LibraryException ===Total=== missing=1 incomplete=0 -missing_members=0
\ No newline at end of file +missing_members=0 diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.txt index 3c3568eb59..6cf5dc8b79 100644 --- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.txt +++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.txt @@ -6,4 +6,4 @@ Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata. ===Total=== missing=2 incomplete=1 -missing_members=0
\ No newline at end of file +missing_members=0 diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_members_missing.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_members_missing.txt index 73831162b3..714276cd70 100644 --- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_members_missing.txt +++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_members_missing.txt @@ -5,4 +5,4 @@ Missing member 'create' in class com.google.devtools.build.importdeps.testdata.L ===Total=== missing=0 incomplete=0 -missing_members=4
\ No newline at end of file +missing_members=4 diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.txt index 12447fc23a..79399786a1 100644 --- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.txt +++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.txt @@ -15,4 +15,4 @@ Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata. ===Total=== missing=11 incomplete=1 -missing_members=0
\ No newline at end of file +missing_members=0 diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_test.sh b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_test.sh index d9f967c28e..a2634f5c7d 100755 --- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_test.sh +++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_test.sh @@ -14,6 +14,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +set -u + gold_file=$1 shift @@ -52,19 +54,23 @@ fi diff "${gold_file}" "${actual_file}" gold_actual_ret=$? -# The actual file and the stderr of the checker should be the same. -diff "${actual_file}" "${checker_stderr}" -checker_stderr_actual_ret=$? +# TODO(b/77721804): re-enable test coverage for stderr -if [[ "${gold_actual_ret}" != 0 ]] || [[ "${checker_stderr_actual_ret}" != 0 ]]; then +if [[ "${gold_actual_ret}" != 0 ]]; then echo "============== Actual Output ==============" cat "${actual_file}" echo "" # New line. echo "===========================================\n" + echo "============== Expected Output ==============" + cat "${gold_file}" + echo "" # New line. + echo "===========================================" + echo "============== Checker Stderr ==============" cat "${checker_stderr}" echo "" # New line. echo "===========================================" + + exit 1 fi -exit ${ret} diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/string_annotation_value_test.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/string_annotation_value_test.txt new file mode 100644 index 0000000000..8cbc6210d5 --- /dev/null +++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/string_annotation_value_test.txt @@ -0,0 +1,9 @@ +Missing java.lang.Object +Missing java.lang.String +Incomplete ancestor classpath for com.google.devtools.build.importdeps.testdata.StringAnnotation + missing ancestor: java.lang.Object + resolution failure path: java.lang.Object +===Total=== +missing=2 +incomplete=1 +missing_members=0 diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/BUILD b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/BUILD index a54fed8168..805bb7d6c4 100644 --- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/BUILD +++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/BUILD @@ -49,3 +49,14 @@ java_library( name = "testdata_lib_LibraryInterface", srcs = ["LibraryInterface.java"], ) + +java_library( + name = "OneAnnotationValue", + srcs = ["OneAnnotationValue.java"], + deps = [":StringAnnotation"], +) + +java_library( + name = "StringAnnotation", + srcs = ["StringAnnotation.java"], +) diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/OneAnnotationValue.java b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/OneAnnotationValue.java new file mode 100644 index 0000000000..4b8d7fd7aa --- /dev/null +++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/OneAnnotationValue.java @@ -0,0 +1,20 @@ +// Copyright 2018 The Bazel Authors. All rights reserved. +// +// 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.google.devtools.build.importdeps.testdata; + +public class OneAnnotationValue { + @StringAnnotation("hello") + void f() {} +} diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/StringAnnotation.java b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/StringAnnotation.java new file mode 100644 index 0000000000..fd5fd69faf --- /dev/null +++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/StringAnnotation.java @@ -0,0 +1,23 @@ +// Copyright 2018 The Bazel Authors. All rights reserved. +// +// 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.google.devtools.build.importdeps.testdata; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface StringAnnotation { + String value(); +} |