blob: 58440503387947d5acaa58f57ff771dfe9d45fea [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2014 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
* Stephan Herrmann - Contribution for
* Bug 425721 - [1.8][compiler] Nondeterministic results in GenericsRegressionTest_1_8.testBug424195a
*******************************************************************************/
package org.eclipse.jdt.core.tests.compiler.regression;
import java.util.Map;
import java.util.StringTokenizer;
import junit.framework.Test;
import org.eclipse.jdt.core.tests.util.Util;
import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
/**
* Tests to verify that Compiler options work well for Javadoc.
* This class does not tests syntax error option as it's considered already
* tested by other JavadocTest* classes.
*
* @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=46854"
* @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=46976"
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public class JavadocTestOptions extends JavadocTest {
/**
* When failures occur in this file due to changes in error messages,
* then uncomment following static initializer.
* This will output in the console the changes which must be done
* on {@link #CLASSES_ERRORS} and/or {@link #METHODS_ERRORS}
* arrays to make the failing tests pass.
*/
// static {
// TESTS_NAMES = new String[] {
// "testInvalidTagsClassErrorTagsPrivate",
// "testInvalidTagsFieldErrorTagsPrivate",
// "testInvalidTagsMethodErrorTagsPrivate",
// "testInvalidTagsConstructorErrorTagsPrivate",
// };
// }
String docCommentSupport = null;
String reportInvalidJavadoc = null;
String reportInvalidJavadocTagsVisibility = null;
String reportInvalidJavadocTags = null;
String reportInvalidJavadocTagsDeprecatedRef= null;
String reportInvalidJavadocTagsNotVisibleRef = null;
String reportMissingJavadocTags = null;
String reportMissingJavadocTagsVisibility = null;
String reportMissingJavadocTagsOverriding = null;
String reportMissingJavadocComments = null;
String reportMissingJavadocCommentsVisibility = null;
String reportMissingJavadocCommentsOverriding = null;
private final int PUBLIC_VISIBILITY = 0;
private final int PROTECTED_VISIBILITY = 1;
private final int DEFAULT_VISIBILITY = 2;
private final int PRIVATE_VISIBILITY = 3;
private static final String INVALID_CLASS_JAVADOC_REF = " /**\n" +
" * @see X_dep\n" +
" * @see X.X_priv\n" +
" * @see X.Unknown\n" +
" * @see X#X(int)\n" +
" * @see X#X(String)\n" +
" * @see X#X()\n" +
" * @see X#x_dep\n" +
" * @see X#x_priv\n" +
" * @see X#unknown\n" +
" * @see X#foo_dep()\n" +
" * @see X#foo_priv()\n" +
" * @see X#foo_dep(String)\n" +
" * @see X#unknown()\n" +
" */\n";
private static final String INVALID_METHOD_JAVADOC_REF = " /**\n" +
" * @param str\n" +
" * @param str\n" +
" * @param xxx\n" +
" * @throws IllegalArgumentException\n" +
" * @throws IllegalArgumentException\n" +
" * @throws java.io.IOException\n" +
" * @throws Unknown\n" +
" * @see X_dep\n" +
" * @see X.X_priv\n" +
" * @see X.Unknown\n" +
" * @see X#X(int)\n" +
" * @see X#X(String)\n" +
" * @see X#X()\n" +
" * @see X#x_dep\n" +
" * @see X#x_priv\n" +
" * @see X#unknown\n" +
" * @see X#foo_dep()\n" +
" * @see X#foo_priv()\n" +
" * @see X#foo_dep(String)\n" +
" * @see X#unknown()\n" +
" */\n";
private static final String DEP_CLASS =
"/** @deprecated */\n" +
"public class X_dep {}\n";
private static final String REF_CLASS =
"public class X {\n" +
// Deprecated class must be a top level to avoid visibility issue
// " /** @deprecated */\n" +
// " class X_dep{}\n" +
" private class X_priv{}\n" +
" /** @deprecated */\n" +
" public int x_dep;\n" +
" private int x_priv;\n" +
" /** @deprecated */\n" +
" public X() {}\n" +
" private X(int x) {}\n" +
" /** @deprecated */\n" +
" public void foo_dep() {}\n" +
" private void foo_priv() {}\n" +
" }\n";
private static final String[] CLASSES_INVALID_COMMENT = {
"X.java",
REF_CLASS,
"X_dep.java",
DEP_CLASS,
"Y.java",
"public class Y {\n" +
INVALID_CLASS_JAVADOC_REF +
" public class X_pub {}\n" +
INVALID_CLASS_JAVADOC_REF +
" protected class X_prot {}\n" +
INVALID_CLASS_JAVADOC_REF +
" class X_pack {}\n" +
INVALID_CLASS_JAVADOC_REF +
" private class X_priv {}\n" +
"}\n" +
"\n"
};
private static final String[] FIELDS_INVALID_COMMENT = {
"X.java",
REF_CLASS,
"X_dep.java",
DEP_CLASS,
"Y.java",
"public class Y {\n" +
INVALID_CLASS_JAVADOC_REF +
" public int x_pub;\n" +
INVALID_CLASS_JAVADOC_REF +
" protected int x_prot;\n" +
INVALID_CLASS_JAVADOC_REF +
" int x_pack;\n" +
INVALID_CLASS_JAVADOC_REF+
" private int x_priv;\n" +
"}\n" +
"\n"
};
private static final String[] METHODS_INVALID_COMMENT = {
"X.java",
REF_CLASS,
"X_dep.java",
DEP_CLASS,
"Y.java",
"public class Y {\n" +
INVALID_METHOD_JAVADOC_REF +
" public void foo_pub(String str) throws IllegalArgumentException {}\n" +
INVALID_METHOD_JAVADOC_REF +
" protected void foo_pro(String str) throws IllegalArgumentException {}\n" +
INVALID_METHOD_JAVADOC_REF +
" void foo_pack(String str) throws IllegalArgumentException {}\n" +
INVALID_METHOD_JAVADOC_REF +
" private void foo_priv(String str) throws IllegalArgumentException {}\n" +
"}\n" +
"\n"
};
private static final String[] CONSTRUCTORS_INVALID_COMMENT = {
"X.java",
REF_CLASS,
"X_dep.java",
DEP_CLASS,
"Y.java",
"public class Y {\n" +
INVALID_METHOD_JAVADOC_REF +
" public Y(int str) {}\n" +
INVALID_METHOD_JAVADOC_REF +
" protected Y(long str) {}\n" +
INVALID_METHOD_JAVADOC_REF +
" Y(float str) {}\n" +
INVALID_METHOD_JAVADOC_REF +
" private Y(double str) {}\n" +
"}\n" +
"\n"
};
private static final String[] MISSING_TAGS = {
"X.java",
"public class X {\n" +
" // public\n" +
" /** */\n" +
" public class PublicClass {}\n" +
" /** */\n" +
" public int publicField;\n" +
" /** */\n" +
" public X(int i) {}\n" +
" /** */\n" +
" public int publicMethod(long l) { return 0;}\n" +
" // protected\n" +
" /** */\n" +
" protected class ProtectedClass {}\n" +
" /** */\n" +
" protected int protectedField;\n" +
" /** */\n" +
" protected X(long l) {}\n" +
" /** */\n" +
" protected int protectedMethod(long l) { return 0; }\n" +
" // default\n" +
" /** */\n" +
" class PackageClass {}\n" +
" /** */\n" +
" int packageField;\n" +
" /** */\n" +
" X(float f) {}\n" +
" /** */\n" +
" int packageMethod(long l) { return 0;}\n" +
" // private\n" +
" /** */\n" +
" private class PrivateClass {}\n" +
" /** */\n" +
" private int privateField;\n" +
" /** */\n" +
" private X(double d) {}\n" +
" /** */\n" +
" private int privateMethod(long l) { return 0;}\n" +
"}\n" +
"\n",
"Y.java",
"/** */\n" +
"public class Y extends X {\n" +
" public Y(int i) { super(i); }\n" +
" //methods\n" +
" /** */\n" +
" public int publicMethod(long l) { return 0;}\n" +
" /** */\n" +
" protected int protectedMethod(long l) { return 0;}\n" +
" /** */\n" +
" int packageMethod(long l) { return 0;}\n" +
" /** */\n" +
" private int privateMethod(long l) { return 0;}\n" +
"}\n"
};
private static final String[] MISSING_COMMENTS = {
"X.java",
"/** */\n" +
"public class X {\n" +
" // public\n" +
" public class PublicClass {}\n" +
" public int publicField;\n" +
" public X(int i) {}\n" +
" public int publicMethod(long l) { return 0;}\n" +
" // protected\n" +
" protected class ProtectedClass {}\n" +
" protected int protectedField;\n" +
" protected X(long l) {}\n" +
" protected int protectedMethod(long l) { return 0; }\n" +
" // default\n" +
" class PackageClass {}\n" +
" int packageField;\n" +
" X(float f) {}\n" +
" int packageMethod(long l) { return 0;}\n" +
" // private\n" +
" private class PrivateClass {}\n" +
" private int privateField;\n" +
" private X(double d) {}\n" +
" private int privateMethod(long l) { return 0;}\n" +
"}\n" +
"\n",
"Y.java",
"/** */\n" +
"public class Y extends X {\n" +
" /** */\n" +
" public Y(int i) { super(i); }\n" +
" public int publicMethod(long l) { return 0;}\n" +
" protected int protectedMethod(long l) { return 0;}\n" +
" int packageMethod(long l) { return 0;}\n" +
" private int privateMethod(long l) { return 0;}\n" +
"}\n"
};
private static final String[] CLASSES_ERRORS = {
"1. ERROR in Y.java (at line 3)\n" +
" * @see X_dep\n" +
" ^^^^^\n" +
"Javadoc: The type X_dep is deprecated\n" +
"----------\n" +
"2. ERROR in Y.java (at line 4)\n" +
" * @see X.X_priv\n" +
" ^^^^^^^^\n" +
"Javadoc: The type X.X_priv is not visible\n" +
"----------\n" +
"3. ERROR in Y.java (at line 5)\n" +
" * @see X.Unknown\n" +
" ^^^^^^^^^\n" +
"Javadoc: X.Unknown cannot be resolved to a type\n" +
"----------\n" +
"4. ERROR in Y.java (at line 6)\n" +
" * @see X#X(int)\n" +
" ^^^^^^\n" +
"Javadoc: The constructor X(int) is not visible\n" +
"----------\n" +
"5. ERROR in Y.java (at line 7)\n" +
" * @see X#X(String)\n" +
" ^^^^^^^^^\n" +
"Javadoc: The constructor X(String) is undefined\n" +
"----------\n" +
"6. ERROR in Y.java (at line 8)\n" +
" * @see X#X()\n" +
" ^^^\n" +
"Javadoc: The constructor X() is deprecated\n" +
"----------\n" +
"7. ERROR in Y.java (at line 9)\n" +
" * @see X#x_dep\n" +
" ^^^^^\n" +
"Javadoc: The field X.x_dep is deprecated\n" +
"----------\n" +
"8. ERROR in Y.java (at line 10)\n" +
" * @see X#x_priv\n" +
" ^^^^^^\n" +
"Javadoc: The field x_priv is not visible\n" +
"----------\n" +
"9. ERROR in Y.java (at line 11)\n" +
" * @see X#unknown\n" +
" ^^^^^^^\n" +
"Javadoc: unknown cannot be resolved or is not a field\n" +
"----------\n" +
"10. ERROR in Y.java (at line 12)\n" +
" * @see X#foo_dep()\n" +
" ^^^^^^^^^\n" +
"Javadoc: The method foo_dep() from the type X is deprecated\n" +
"----------\n" +
"11. ERROR in Y.java (at line 13)\n" +
" * @see X#foo_priv()\n" +
" ^^^^^^^^\n" +
"Javadoc: The method foo_priv() from the type X is not visible\n" +
"----------\n" +
"12. ERROR in Y.java (at line 14)\n" +
" * @see X#foo_dep(String)\n" +
" ^^^^^^^\n" +
"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" +
"----------\n" +
"13. ERROR in Y.java (at line 15)\n" +
" * @see X#unknown()\n" +
" ^^^^^^^\n" +
"Javadoc: The method unknown() is undefined for the type X\n" +
"----------\n",
"14. ERROR in Y.java (at line 19)\n" +
" * @see X_dep\n" +
" ^^^^^\n" +
"Javadoc: The type X_dep is deprecated\n" +
"----------\n" +
"15. ERROR in Y.java (at line 20)\n" +
" * @see X.X_priv\n" +
" ^^^^^^^^\n" +
"Javadoc: The type X.X_priv is not visible\n" +
"----------\n" +
"16. ERROR in Y.java (at line 21)\n" +
" * @see X.Unknown\n" +
" ^^^^^^^^^\n" +
"Javadoc: X.Unknown cannot be resolved to a type\n" +
"----------\n" +
"17. ERROR in Y.java (at line 22)\n" +
" * @see X#X(int)\n" +
" ^^^^^^\n" +
"Javadoc: The constructor X(int) is not visible\n" +
"----------\n" +
"18. ERROR in Y.java (at line 23)\n" +
" * @see X#X(String)\n" +
" ^^^^^^^^^\n" +
"Javadoc: The constructor X(String) is undefined\n" +
"----------\n" +
"19. ERROR in Y.java (at line 24)\n" +
" * @see X#X()\n" +
" ^^^\n" +
"Javadoc: The constructor X() is deprecated\n" +
"----------\n" +
"20. ERROR in Y.java (at line 25)\n" +
" * @see X#x_dep\n" +
" ^^^^^\n" +
"Javadoc: The field X.x_dep is deprecated\n" +
"----------\n" +
"21. ERROR in Y.java (at line 26)\n" +
" * @see X#x_priv\n" +
" ^^^^^^\n" +
"Javadoc: The field x_priv is not visible\n" +
"----------\n" +
"22. ERROR in Y.java (at line 27)\n" +
" * @see X#unknown\n" +
" ^^^^^^^\n" +
"Javadoc: unknown cannot be resolved or is not a field\n" +
"----------\n" +
"23. ERROR in Y.java (at line 28)\n" +
" * @see X#foo_dep()\n" +
" ^^^^^^^^^\n" +
"Javadoc: The method foo_dep() from the type X is deprecated\n" +
"----------\n" +
"24. ERROR in Y.java (at line 29)\n" +
" * @see X#foo_priv()\n" +
" ^^^^^^^^\n" +
"Javadoc: The method foo_priv() from the type X is not visible\n" +
"----------\n" +
"25. ERROR in Y.java (at line 30)\n" +
" * @see X#foo_dep(String)\n" +
" ^^^^^^^\n" +
"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" +
"----------\n" +
"26. ERROR in Y.java (at line 31)\n" +
" * @see X#unknown()\n" +
" ^^^^^^^\n" +
"Javadoc: The method unknown() is undefined for the type X\n" +
"----------\n",
"27. ERROR in Y.java (at line 35)\n" +
" * @see X_dep\n" +
" ^^^^^\n" +
"Javadoc: The type X_dep is deprecated\n" +
"----------\n" +
"28. ERROR in Y.java (at line 36)\n" +
" * @see X.X_priv\n" +
" ^^^^^^^^\n" +
"Javadoc: The type X.X_priv is not visible\n" +
"----------\n" +
"29. ERROR in Y.java (at line 37)\n" +
" * @see X.Unknown\n" +
" ^^^^^^^^^\n" +
"Javadoc: X.Unknown cannot be resolved to a type\n" +
"----------\n" +
"30. ERROR in Y.java (at line 38)\n" +
" * @see X#X(int)\n" +
" ^^^^^^\n" +
"Javadoc: The constructor X(int) is not visible\n" +
"----------\n" +
"31. ERROR in Y.java (at line 39)\n" +
" * @see X#X(String)\n" +
" ^^^^^^^^^\n" +
"Javadoc: The constructor X(String) is undefined\n" +
"----------\n" +
"32. ERROR in Y.java (at line 40)\n" +
" * @see X#X()\n" +
" ^^^\n" +
"Javadoc: The constructor X() is deprecated\n" +
"----------\n" +
"33. ERROR in Y.java (at line 41)\n" +
" * @see X#x_dep\n" +
" ^^^^^\n" +
"Javadoc: The field X.x_dep is deprecated\n" +
"----------\n" +
"34. ERROR in Y.java (at line 42)\n" +
" * @see X#x_priv\n" +
" ^^^^^^\n" +
"Javadoc: The field x_priv is not visible\n" +
"----------\n" +
"35. ERROR in Y.java (at line 43)\n" +
" * @see X#unknown\n" +
" ^^^^^^^\n" +
"Javadoc: unknown cannot be resolved or is not a field\n" +
"----------\n" +
"36. ERROR in Y.java (at line 44)\n" +
" * @see X#foo_dep()\n" +
" ^^^^^^^^^\n" +
"Javadoc: The method foo_dep() from the type X is deprecated\n" +
"----------\n" +
"37. ERROR in Y.java (at line 45)\n" +
" * @see X#foo_priv()\n" +
" ^^^^^^^^\n" +
"Javadoc: The method foo_priv() from the type X is not visible\n" +
"----------\n" +
"38. ERROR in Y.java (at line 46)\n" +
" * @see X#foo_dep(String)\n" +
" ^^^^^^^\n" +
"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" +
"----------\n" +
"39. ERROR in Y.java (at line 47)\n" +
" * @see X#unknown()\n" +
" ^^^^^^^\n" +
"Javadoc: The method unknown() is undefined for the type X\n" +
"----------\n",
"40. ERROR in Y.java (at line 51)\n" +
" * @see X_dep\n" +
" ^^^^^\n" +
"Javadoc: The type X_dep is deprecated\n" +
"----------\n" +
"41. ERROR in Y.java (at line 52)\n" +
" * @see X.X_priv\n" +
" ^^^^^^^^\n" +
"Javadoc: The type X.X_priv is not visible\n" +
"----------\n" +
"42. ERROR in Y.java (at line 53)\n" +
" * @see X.Unknown\n" +
" ^^^^^^^^^\n" +
"Javadoc: X.Unknown cannot be resolved to a type\n" +
"----------\n" +
"43. ERROR in Y.java (at line 54)\n" +
" * @see X#X(int)\n" +
" ^^^^^^\n" +
"Javadoc: The constructor X(int) is not visible\n" +
"----------\n" +
"44. ERROR in Y.java (at line 55)\n" +
" * @see X#X(String)\n" +
" ^^^^^^^^^\n" +
"Javadoc: The constructor X(String) is undefined\n" +
"----------\n" +
"45. ERROR in Y.java (at line 56)\n" +
" * @see X#X()\n" +
" ^^^\n" +
"Javadoc: The constructor X() is deprecated\n" +
"----------\n" +
"46. ERROR in Y.java (at line 57)\n" +
" * @see X#x_dep\n" +
" ^^^^^\n" +
"Javadoc: The field X.x_dep is deprecated\n" +
"----------\n" +
"47. ERROR in Y.java (at line 58)\n" +
" * @see X#x_priv\n" +
" ^^^^^^\n" +
"Javadoc: The field x_priv is not visible\n" +
"----------\n" +
"48. ERROR in Y.java (at line 59)\n" +
" * @see X#unknown\n" +
" ^^^^^^^\n" +
"Javadoc: unknown cannot be resolved or is not a field\n" +
"----------\n" +
"49. ERROR in Y.java (at line 60)\n" +
" * @see X#foo_dep()\n" +
" ^^^^^^^^^\n" +
"Javadoc: The method foo_dep() from the type X is deprecated\n" +
"----------\n" +
"50. ERROR in Y.java (at line 61)\n" +
" * @see X#foo_priv()\n" +
" ^^^^^^^^\n" +
"Javadoc: The method foo_priv() from the type X is not visible\n" +
"----------\n" +
"51. ERROR in Y.java (at line 62)\n" +
" * @see X#foo_dep(String)\n" +
" ^^^^^^^\n" +
"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" +
"----------\n" +
"52. ERROR in Y.java (at line 63)\n" +
" * @see X#unknown()\n" +
" ^^^^^^^\n" +
"Javadoc: The method unknown() is undefined for the type X\n" +
"----------\n"
};
private static final String[] METHODS_ERRORS = {
"1. ERROR in Y.java (at line 4)\n" +
" * @param str\n" +
" ^^^\n" +
"Javadoc: Duplicate tag for parameter\n" +
"----------\n" +
"2. ERROR in Y.java (at line 5)\n" +
" * @param xxx\n" +
" ^^^\n" +
"Javadoc: Parameter xxx is not declared\n" +
"----------\n" +
"3. ERROR in Y.java (at line 8)\n" +
" * @throws java.io.IOException\n" +
" ^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Exception IOException is not declared\n" +
"----------\n" +
"4. ERROR in Y.java (at line 9)\n" +
" * @throws Unknown\n" +
" ^^^^^^^\n" +
"Javadoc: Unknown cannot be resolved to a type\n" +
"----------\n" +
"5. ERROR in Y.java (at line 10)\n" +
" * @see X_dep\n" +
" ^^^^^\n" +
"Javadoc: The type X_dep is deprecated\n" +
"----------\n" +
"6. ERROR in Y.java (at line 11)\n" +
" * @see X.X_priv\n" +
" ^^^^^^^^\n" +
"Javadoc: The type X.X_priv is not visible\n" +
"----------\n" +
"7. ERROR in Y.java (at line 12)\n" +
" * @see X.Unknown\n" +
" ^^^^^^^^^\n" +
"Javadoc: X.Unknown cannot be resolved to a type\n" +
"----------\n" +
"8. ERROR in Y.java (at line 13)\n" +
" * @see X#X(int)\n" +
" ^^^^^^\n" +
"Javadoc: The constructor X(int) is not visible\n" +
"----------\n" +
"9. ERROR in Y.java (at line 14)\n" +
" * @see X#X(String)\n" +
" ^^^^^^^^^\n" +
"Javadoc: The constructor X(String) is undefined\n" +
"----------\n" +
"10. ERROR in Y.java (at line 15)\n" +
" * @see X#X()\n" +
" ^^^\n" +
"Javadoc: The constructor X() is deprecated\n" +
"----------\n" +
"11. ERROR in Y.java (at line 16)\n" +
" * @see X#x_dep\n" +
" ^^^^^\n" +
"Javadoc: The field X.x_dep is deprecated\n" +
"----------\n" +
"12. ERROR in Y.java (at line 17)\n" +
" * @see X#x_priv\n" +
" ^^^^^^\n" +
"Javadoc: The field x_priv is not visible\n" +
"----------\n" +
"13. ERROR in Y.java (at line 18)\n" +
" * @see X#unknown\n" +
" ^^^^^^^\n" +
"Javadoc: unknown cannot be resolved or is not a field\n" +
"----------\n" +
"14. ERROR in Y.java (at line 19)\n" +
" * @see X#foo_dep()\n" +
" ^^^^^^^^^\n" +
"Javadoc: The method foo_dep() from the type X is deprecated\n" +
"----------\n" +
"15. ERROR in Y.java (at line 20)\n" +
" * @see X#foo_priv()\n" +
" ^^^^^^^^\n" +
"Javadoc: The method foo_priv() from the type X is not visible\n" +
"----------\n" +
"16. ERROR in Y.java (at line 21)\n" +
" * @see X#foo_dep(String)\n" +
" ^^^^^^^\n" +
"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" +
"----------\n" +
"17. ERROR in Y.java (at line 22)\n" +
" * @see X#unknown()\n" +
" ^^^^^^^\n" +
"Javadoc: The method unknown() is undefined for the type X\n" +
"----------\n",
"18. ERROR in Y.java (at line 27)\n" +
" * @param str\n" +
" ^^^\n" +
"Javadoc: Duplicate tag for parameter\n" +
"----------\n" +
"19. ERROR in Y.java (at line 28)\n" +
" * @param xxx\n" +
" ^^^\n" +
"Javadoc: Parameter xxx is not declared\n" +
"----------\n" +
"20. ERROR in Y.java (at line 31)\n" +
" * @throws java.io.IOException\n" +
" ^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Exception IOException is not declared\n" +
"----------\n" +
"21. ERROR in Y.java (at line 32)\n" +
" * @throws Unknown\n" +
" ^^^^^^^\n" +
"Javadoc: Unknown cannot be resolved to a type\n" +
"----------\n" +
"22. ERROR in Y.java (at line 33)\n" +
" * @see X_dep\n" +
" ^^^^^\n" +
"Javadoc: The type X_dep is deprecated\n" +
"----------\n" +
"23. ERROR in Y.java (at line 34)\n" +
" * @see X.X_priv\n" +
" ^^^^^^^^\n" +
"Javadoc: The type X.X_priv is not visible\n" +
"----------\n" +
"24. ERROR in Y.java (at line 35)\n" +
" * @see X.Unknown\n" +
" ^^^^^^^^^\n" +
"Javadoc: X.Unknown cannot be resolved to a type\n" +
"----------\n" +
"25. ERROR in Y.java (at line 36)\n" +
" * @see X#X(int)\n" +
" ^^^^^^\n" +
"Javadoc: The constructor X(int) is not visible\n" +
"----------\n" +
"26. ERROR in Y.java (at line 37)\n" +
" * @see X#X(String)\n" +
" ^^^^^^^^^\n" +
"Javadoc: The constructor X(String) is undefined\n" +
"----------\n" +
"27. ERROR in Y.java (at line 38)\n" +
" * @see X#X()\n" +
" ^^^\n" +
"Javadoc: The constructor X() is deprecated\n" +
"----------\n" +
"28. ERROR in Y.java (at line 39)\n" +
" * @see X#x_dep\n" +
" ^^^^^\n" +
"Javadoc: The field X.x_dep is deprecated\n" +
"----------\n" +
"29. ERROR in Y.java (at line 40)\n" +
" * @see X#x_priv\n" +
" ^^^^^^\n" +
"Javadoc: The field x_priv is not visible\n" +
"----------\n" +
"30. ERROR in Y.java (at line 41)\n" +
" * @see X#unknown\n" +
" ^^^^^^^\n" +
"Javadoc: unknown cannot be resolved or is not a field\n" +
"----------\n" +
"31. ERROR in Y.java (at line 42)\n" +
" * @see X#foo_dep()\n" +
" ^^^^^^^^^\n" +
"Javadoc: The method foo_dep() from the type X is deprecated\n" +
"----------\n" +
"32. ERROR in Y.java (at line 43)\n" +
" * @see X#foo_priv()\n" +
" ^^^^^^^^\n" +
"Javadoc: The method foo_priv() from the type X is not visible\n" +
"----------\n" +
"33. ERROR in Y.java (at line 44)\n" +
" * @see X#foo_dep(String)\n" +
" ^^^^^^^\n" +
"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" +
"----------\n" +
"34. ERROR in Y.java (at line 45)\n" +
" * @see X#unknown()\n" +
" ^^^^^^^\n" +
"Javadoc: The method unknown() is undefined for the type X\n" +
"----------\n",
"35. ERROR in Y.java (at line 50)\n" +
" * @param str\n" +
" ^^^\n" +
"Javadoc: Duplicate tag for parameter\n" +
"----------\n" +
"36. ERROR in Y.java (at line 51)\n" +
" * @param xxx\n" +
" ^^^\n" +
"Javadoc: Parameter xxx is not declared\n" +
"----------\n" +
"37. ERROR in Y.java (at line 54)\n" +
" * @throws java.io.IOException\n" +
" ^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Exception IOException is not declared\n" +
"----------\n" +
"38. ERROR in Y.java (at line 55)\n" +
" * @throws Unknown\n" +
" ^^^^^^^\n" +
"Javadoc: Unknown cannot be resolved to a type\n" +
"----------\n" +
"39. ERROR in Y.java (at line 56)\n" +
" * @see X_dep\n" +
" ^^^^^\n" +
"Javadoc: The type X_dep is deprecated\n" +
"----------\n" +
"40. ERROR in Y.java (at line 57)\n" +
" * @see X.X_priv\n" +
" ^^^^^^^^\n" +
"Javadoc: The type X.X_priv is not visible\n" +
"----------\n" +
"41. ERROR in Y.java (at line 58)\n" +
" * @see X.Unknown\n" +
" ^^^^^^^^^\n" +
"Javadoc: X.Unknown cannot be resolved to a type\n" +
"----------\n" +
"42. ERROR in Y.java (at line 59)\n" +
" * @see X#X(int)\n" +
" ^^^^^^\n" +
"Javadoc: The constructor X(int) is not visible\n" +
"----------\n" +
"43. ERROR in Y.java (at line 60)\n" +
" * @see X#X(String)\n" +
" ^^^^^^^^^\n" +
"Javadoc: The constructor X(String) is undefined\n" +
"----------\n" +
"44. ERROR in Y.java (at line 61)\n" +
" * @see X#X()\n" +
" ^^^\n" +
"Javadoc: The constructor X() is deprecated\n" +
"----------\n" +
"45. ERROR in Y.java (at line 62)\n" +
" * @see X#x_dep\n" +
" ^^^^^\n" +
"Javadoc: The field X.x_dep is deprecated\n" +
"----------\n" +
"46. ERROR in Y.java (at line 63)\n" +
" * @see X#x_priv\n" +
" ^^^^^^\n" +
"Javadoc: The field x_priv is not visible\n" +
"----------\n" +
"47. ERROR in Y.java (at line 64)\n" +
" * @see X#unknown\n" +
" ^^^^^^^\n" +
"Javadoc: unknown cannot be resolved or is not a field\n" +
"----------\n" +
"48. ERROR in Y.java (at line 65)\n" +
" * @see X#foo_dep()\n" +
" ^^^^^^^^^\n" +
"Javadoc: The method foo_dep() from the type X is deprecated\n" +
"----------\n" +
"49. ERROR in Y.java (at line 66)\n" +
" * @see X#foo_priv()\n" +
" ^^^^^^^^\n" +
"Javadoc: The method foo_priv() from the type X is not visible\n" +
"----------\n" +
"50. ERROR in Y.java (at line 67)\n" +
" * @see X#foo_dep(String)\n" +
" ^^^^^^^\n" +
"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" +
"----------\n" +
"51. ERROR in Y.java (at line 68)\n" +
" * @see X#unknown()\n" +
" ^^^^^^^\n" +
"Javadoc: The method unknown() is undefined for the type X\n" +
"----------\n",
"52. ERROR in Y.java (at line 73)\n" +
" * @param str\n" +
" ^^^\n" +
"Javadoc: Duplicate tag for parameter\n" +
"----------\n" +
"53. ERROR in Y.java (at line 74)\n" +
" * @param xxx\n" +
" ^^^\n" +
"Javadoc: Parameter xxx is not declared\n" +
"----------\n" +
"54. ERROR in Y.java (at line 77)\n" +
" * @throws java.io.IOException\n" +
" ^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Exception IOException is not declared\n" +
"----------\n" +
"55. ERROR in Y.java (at line 78)\n" +
" * @throws Unknown\n" +
" ^^^^^^^\n" +
"Javadoc: Unknown cannot be resolved to a type\n" +
"----------\n" +
"56. ERROR in Y.java (at line 79)\n" +
" * @see X_dep\n" +
" ^^^^^\n" +
"Javadoc: The type X_dep is deprecated\n" +
"----------\n" +
"57. ERROR in Y.java (at line 80)\n" +
" * @see X.X_priv\n" +
" ^^^^^^^^\n" +
"Javadoc: The type X.X_priv is not visible\n" +
"----------\n" +
"58. ERROR in Y.java (at line 81)\n" +
" * @see X.Unknown\n" +
" ^^^^^^^^^\n" +
"Javadoc: X.Unknown cannot be resolved to a type\n" +
"----------\n" +
"59. ERROR in Y.java (at line 82)\n" +
" * @see X#X(int)\n" +
" ^^^^^^\n" +
"Javadoc: The constructor X(int) is not visible\n" +
"----------\n" +
"60. ERROR in Y.java (at line 83)\n" +
" * @see X#X(String)\n" +
" ^^^^^^^^^\n" +
"Javadoc: The constructor X(String) is undefined\n" +
"----------\n" +
"61. ERROR in Y.java (at line 84)\n" +
" * @see X#X()\n" +
" ^^^\n" +
"Javadoc: The constructor X() is deprecated\n" +
"----------\n" +
"62. ERROR in Y.java (at line 85)\n" +
" * @see X#x_dep\n" +
" ^^^^^\n" +
"Javadoc: The field X.x_dep is deprecated\n" +
"----------\n" +
"63. ERROR in Y.java (at line 86)\n" +
" * @see X#x_priv\n" +
" ^^^^^^\n" +
"Javadoc: The field x_priv is not visible\n" +
"----------\n" +
"64. ERROR in Y.java (at line 87)\n" +
" * @see X#unknown\n" +
" ^^^^^^^\n" +
"Javadoc: unknown cannot be resolved or is not a field\n" +
"----------\n" +
"65. ERROR in Y.java (at line 88)\n" +
" * @see X#foo_dep()\n" +
" ^^^^^^^^^\n" +
"Javadoc: The method foo_dep() from the type X is deprecated\n" +
"----------\n" +
"66. ERROR in Y.java (at line 89)\n" +
" * @see X#foo_priv()\n" +
" ^^^^^^^^\n" +
"Javadoc: The method foo_priv() from the type X is not visible\n" +
"----------\n" +
"67. ERROR in Y.java (at line 90)\n" +
" * @see X#foo_dep(String)\n" +
" ^^^^^^^\n" +
"Javadoc: The method foo_dep() in the type X is not applicable for the arguments (String)\n" +
"----------\n" +
"68. ERROR in Y.java (at line 91)\n" +
" * @see X#unknown()\n" +
" ^^^^^^^\n" +
"Javadoc: The method unknown() is undefined for the type X\n" +
"----------\n",
};
private String resultForInvalidTagsClassOrField(int visibility) {
String[] errors = errorsForInvalidTagsClassOrField(visibility);
int length = errors.length;
StringBuffer buffer = new StringBuffer("----------\n");
for (int i=0; i<length; i++) {
buffer.append(errors[i]);
}
return buffer.toString();
}
private String resultForInvalidTagsMethodOrConstructor(int visibility) {
String[] errors = errorsForInvalidTagsMethodOrConstructor(visibility);
int length = errors.length;
StringBuffer buffer = new StringBuffer("----------\n");
for (int i=0; i<length; i++) {
buffer.append(errors[i]);
}
return buffer.toString();
}
private String[] errorsForInvalidTagsClassOrField(int visibility) {
int length = CLASSES_ERRORS.length;
int size = visibility+1;
if (this.reportInvalidJavadocTagsDeprecatedRef == null && this.reportInvalidJavadocTagsNotVisibleRef == null) {
if (size == length) return CLASSES_ERRORS;
String[] errors = new String[size];
System.arraycopy(CLASSES_ERRORS, 0, errors, 0, size);
return errors;
}
String[] errors = new String[size];
for (int i=0, count=1; i<size; i++) {
StringBuffer buffer = new StringBuffer();
StringTokenizer tokenizer = new StringTokenizer(CLASSES_ERRORS[i], "\n");
while (tokenizer.hasMoreTokens()) {
StringBuffer error = new StringBuffer();
boolean add = true;
for (int j=0; j<5; j++) {
String token = tokenizer.nextToken();
switch (j) {
case 0:
error.append(count);
error.append(token.substring(token.indexOf('.')));
break;
case 3:
// may not want to add the error message in certain circumstances
if (CompilerOptions.DISABLED.equals(this.reportInvalidJavadocTagsDeprecatedRef)) {
add = token.indexOf("is deprecated") == -1;
}
if (add && CompilerOptions.DISABLED.equals(this.reportInvalidJavadocTagsNotVisibleRef)) {
add = token.indexOf("is not visible") == -1 && token.indexOf("visibility for malformed doc comments") == -1;
}
// $FALL-THROUGH$ - fall through next case to append the token to the error message
default:
error.append(token);
}
error.append('\n');
}
if (add) {
count++;
buffer.append(error);
}
}
errors[i] = buffer.toString();
}
return errors;
}
private String[] errorsForInvalidTagsMethodOrConstructor(int visibility) {
int length = METHODS_ERRORS.length;
int size = visibility+1;
if (this.reportInvalidJavadocTagsDeprecatedRef == null && this.reportInvalidJavadocTagsNotVisibleRef == null) {
if (size == length) return METHODS_ERRORS;
String[] errors = new String[size];
System.arraycopy(METHODS_ERRORS, 0, errors, 0, size);
return errors;
}
String[] errors = new String[size];
for (int i=0, count=1; i<size; i++) {
StringBuffer buffer = new StringBuffer();
StringTokenizer tokenizer = new StringTokenizer(METHODS_ERRORS[i], "\n");
while (tokenizer.hasMoreTokens()) {
StringBuffer error = new StringBuffer();
boolean add = true;
for (int j=0; j<5; j++) {
String token = tokenizer.nextToken();
switch (j) {
case 0:
error.append(count);
error.append(token.substring(token.indexOf('.')));
break;
case 3:
// may not want to add the error message in certain circumstances
if (CompilerOptions.DISABLED.equals(this.reportInvalidJavadocTagsDeprecatedRef)) {
add = token.indexOf("is deprecated") == -1;
}
if (add && CompilerOptions.DISABLED.equals(this.reportInvalidJavadocTagsNotVisibleRef)) {
add = token.indexOf("is not visible") == -1 && token.indexOf("visibility for malformed doc comments") == -1;
}
// $FALL-THROUGH$ - fall through next case to append the token to the error message
default:
error.append(token);
}
error.append('\n');
}
if (add) {
count++;
buffer.append(error);
}
}
errors[i] = buffer.toString();
}
return errors;
}
private void runErrorsTest(String[] testFiles, int visibility, boolean isMethod) {
String[] errors = isMethod
? errorsForInvalidTagsMethodOrConstructor(visibility)
: errorsForInvalidTagsClassOrField(visibility);
int length = errors.length;
StringBuffer expectedProblemLog = new StringBuffer(isMethod?"M":"C");
expectedProblemLog.append(errors.length);
expectedProblemLog.append("----------\n");
for (int i=0; i<length; i++) {
expectedProblemLog.append(errors[i]);
}
runNegativeTest(testFiles, expectedProblemLog.toString(),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
@Override
protected void checkCompilerLog(String[] testFiles, Requestor requestor,
String[] alternatePlatformIndependantExpectedLogs, Throwable exception) {
String platformIndependantExpectedLog = alternatePlatformIndependantExpectedLogs[0];
char firstChar = platformIndependantExpectedLog.charAt(0);
boolean isMethod;
switch (firstChar) {
case 'M':
isMethod = true;
break;
case 'C':
isMethod = false;
break;
default:
super.checkCompilerLog(testFiles, requestor,
alternatePlatformIndependantExpectedLogs, exception);
return;
}
int level = platformIndependantExpectedLog.charAt(1) - '0';
String computedProblemLog = Util.convertToIndependantLineDelimiter(requestor.problemLog.toString());
String expectedLog = platformIndependantExpectedLog.substring(2);
if (!expectedLog.equals(computedProblemLog)) {
System.out.println(getClass().getName() + '#' + getName());
System.out.println("Following static variable should be updated as follow to make this test green:");
System.out.print(" private static final String[] ");
if (isMethod) {
System.out.print("METHODS_ERRORS");
} else {
System.out.print("CLASSES_ERRORS");
}
System.out.print(" = {\n");
String[] errors = computedProblemLog.split("----------\n");
int length = errors.length;
int max = length / level;
for (int i=0, idx=1; i<level; i++) {
StringBuffer buffer = new StringBuffer();
for (int j=0; j<max; j++) {
if (j > 0) {
buffer.append("----------\n");
}
buffer.append(errors[idx++]);
}
buffer.append("----------\n");
System.out.print(Util.displayString(buffer.toString(), INDENT, true));
System.out.println(',');
}
for (int k = 0; k < INDENT-1; k++) System.out.print('\t');
System.out.println("};");
}
if (exception == null) {
assertEquals("Invalid problem log ", expectedLog, computedProblemLog);
}
}
private static final String[] X_MISSING_TAGS_ERRORS = {
"1. ERROR in X.java (at line 8)\n" +
" public X(int i) {}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter i\n" +
"----------\n" +
"2. ERROR in X.java (at line 10)\n" +
" public int publicMethod(long l) { return 0;}\n" +
" ^^^\n" +
"Javadoc: Missing tag for return type\n" +
"----------\n" +
"3. ERROR in X.java (at line 10)\n" +
" public int publicMethod(long l) { return 0;}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter l\n" +
"----------\n",
"4. ERROR in X.java (at line 17)\n" +
" protected X(long l) {}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter l\n" +
"----------\n" +
"5. ERROR in X.java (at line 19)\n" +
" protected int protectedMethod(long l) { return 0; }\n" +
" ^^^\n" +
"Javadoc: Missing tag for return type\n" +
"----------\n" +
"6. ERROR in X.java (at line 19)\n" +
" protected int protectedMethod(long l) { return 0; }\n" +
" ^\n" +
"Javadoc: Missing tag for parameter l\n" +
"----------\n",
"7. ERROR in X.java (at line 26)\n" +
" X(float f) {}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter f\n" +
"----------\n" +
"8. ERROR in X.java (at line 28)\n" +
" int packageMethod(long l) { return 0;}\n" +
" ^^^\n" +
"Javadoc: Missing tag for return type\n" +
"----------\n" +
"9. ERROR in X.java (at line 28)\n" +
" int packageMethod(long l) { return 0;}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter l\n" +
"----------\n",
"10. ERROR in X.java (at line 35)\n" +
" private X(double d) {}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter d\n" +
"----------\n" +
"11. ERROR in X.java (at line 37)\n" +
" private int privateMethod(long l) { return 0;}\n" +
" ^^^\n" +
"Javadoc: Missing tag for return type\n" +
"----------\n" +
"12. ERROR in X.java (at line 37)\n" +
" private int privateMethod(long l) { return 0;}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter l\n" +
"----------\n"
};
private static final String[] Y_MISSING_TAGS_ERRORS = {
"1. ERROR in Y.java (at line 6)\n" +
" public int publicMethod(long l) { return 0;}\n" +
" ^^^\n" +
"Javadoc: Missing tag for return type\n" +
"----------\n" +
"2. ERROR in Y.java (at line 6)\n" +
" public int publicMethod(long l) { return 0;}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter l\n" +
"----------\n",
"3. ERROR in Y.java (at line 8)\n" +
" protected int protectedMethod(long l) { return 0;}\n" +
" ^^^\n" +
"Javadoc: Missing tag for return type\n" +
"----------\n" +
"4. ERROR in Y.java (at line 8)\n" +
" protected int protectedMethod(long l) { return 0;}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter l\n" +
"----------\n",
"5. ERROR in Y.java (at line 10)\n" +
" int packageMethod(long l) { return 0;}\n" +
" ^^^\n" +
"Javadoc: Missing tag for return type\n" +
"----------\n" +
"6. ERROR in Y.java (at line 10)\n" +
" int packageMethod(long l) { return 0;}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter l\n" +
"----------\n",
"7. ERROR in Y.java (at line 12)\n" +
" private int privateMethod(long l) { return 0;}\n" +
" ^^^\n" +
"Javadoc: Missing tag for return type\n" +
"----------\n" +
"8. ERROR in Y.java (at line 12)\n" +
" private int privateMethod(long l) { return 0;}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter l\n" +
"----------\n",
"----------\n" +
"1. ERROR in Y.java (at line 12)\n" +
" private int privateMethod(long l) { return 0;}\n" +
" ^^^\n" +
"Javadoc: Missing tag for return type\n" +
"----------\n" +
"2. ERROR in Y.java (at line 12)\n" +
" private int privateMethod(long l) { return 0;}\n" +
" ^\n" +
"Javadoc: Missing tag for parameter l\n" +
"----------\n"
};
private String resultForMissingTags(int visibility) {
StringBuffer result = new StringBuffer("----------\n");
for (int i=0; i<=visibility; i++) {
result.append(X_MISSING_TAGS_ERRORS[i]);
}
if (CompilerOptions.ENABLED.equals(this.reportMissingJavadocTagsOverriding)) {
result.append("----------\n");
result.append(Y_MISSING_TAGS_ERRORS[this.PUBLIC_VISIBILITY]);
if (visibility >= this.PROTECTED_VISIBILITY) {
result.append(Y_MISSING_TAGS_ERRORS[this.PROTECTED_VISIBILITY]);
if (visibility >= this.DEFAULT_VISIBILITY) {
result.append(Y_MISSING_TAGS_ERRORS[this.DEFAULT_VISIBILITY]);
if (visibility == this.PRIVATE_VISIBILITY) {
result.append(Y_MISSING_TAGS_ERRORS[this.PRIVATE_VISIBILITY]);
}
}
}
}
// Private level is always reported as it never overrides...
else if (visibility == this.PRIVATE_VISIBILITY) {
result.append(Y_MISSING_TAGS_ERRORS[this.PRIVATE_VISIBILITY+1]);
}
return result.toString();
}
private static final String[] X_MISSING_COMMENTS_ERRORS = {
"1. ERROR in X.java (at line 4)\n" +
" public class PublicClass {}\n" +
" ^^^^^^^^^^^\n" +
"Javadoc: Missing comment for public declaration\n" +
"----------\n" +
"2. ERROR in X.java (at line 5)\n" +
" public int publicField;\n" +
" ^^^^^^^^^^^\n" +
"Javadoc: Missing comment for public declaration\n" +
"----------\n" +
"3. ERROR in X.java (at line 6)\n" +
" public X(int i) {}\n" +
" ^^^^^^^^\n" +
"Javadoc: Missing comment for public declaration\n" +
"----------\n" +
"4. ERROR in X.java (at line 7)\n" +
" public int publicMethod(long l) { return 0;}\n" +
" ^^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for public declaration\n" +
"----------\n",
"5. ERROR in X.java (at line 9)\n" +
" protected class ProtectedClass {}\n" +
" ^^^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for protected declaration\n" +
"----------\n" +
"6. ERROR in X.java (at line 10)\n" +
" protected int protectedField;\n" +
" ^^^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for protected declaration\n" +
"----------\n" +
"7. ERROR in X.java (at line 11)\n" +
" protected X(long l) {}\n" +
" ^^^^^^^^^\n" +
"Javadoc: Missing comment for protected declaration\n" +
"----------\n" +
"8. ERROR in X.java (at line 12)\n" +
" protected int protectedMethod(long l) { return 0; }\n" +
" ^^^^^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for protected declaration\n" +
"----------\n",
"9. ERROR in X.java (at line 14)\n" +
" class PackageClass {}\n" +
" ^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for default declaration\n" +
"----------\n" +
"10. ERROR in X.java (at line 15)\n" +
" int packageField;\n" +
" ^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for default declaration\n" +
"----------\n" +
"11. ERROR in X.java (at line 16)\n" +
" X(float f) {}\n" +
" ^^^^^^^^^^\n" +
"Javadoc: Missing comment for default declaration\n" +
"----------\n" +
"12. ERROR in X.java (at line 17)\n" +
" int packageMethod(long l) { return 0;}\n" +
" ^^^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for default declaration\n" +
"----------\n",
"13. ERROR in X.java (at line 19)\n" +
" private class PrivateClass {}\n" +
" ^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for private declaration\n" +
"----------\n" +
"14. ERROR in X.java (at line 20)\n" +
" private int privateField;\n" +
" ^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for private declaration\n" +
"----------\n" +
"15. ERROR in X.java (at line 21)\n" +
" private X(double d) {}\n" +
" ^^^^^^^^^^^\n" +
"Javadoc: Missing comment for private declaration\n" +
"----------\n" +
"16. ERROR in X.java (at line 22)\n" +
" private int privateMethod(long l) { return 0;}\n" +
" ^^^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for private declaration\n" +
"----------\n"
};
private static final String[] Y_MISSING_COMMENTS_ERRORS = {
"1. ERROR in Y.java (at line 5)\n" +
" public int publicMethod(long l) { return 0;}\n" +
" ^^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for public declaration\n" +
"----------\n",
"2. ERROR in Y.java (at line 6)\n" +
" protected int protectedMethod(long l) { return 0;}\n" +
" ^^^^^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for protected declaration\n" +
"----------\n",
"3. ERROR in Y.java (at line 7)\n" +
" int packageMethod(long l) { return 0;}\n" +
" ^^^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for default declaration\n" +
"----------\n",
"4. ERROR in Y.java (at line 8)\n" +
" private int privateMethod(long l) { return 0;}\n" +
" ^^^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for private declaration\n" +
"----------\n",
"----------\n" +
"1. ERROR in Y.java (at line 8)\n" +
" private int privateMethod(long l) { return 0;}\n" +
" ^^^^^^^^^^^^^^^^^^^^^\n" +
"Javadoc: Missing comment for private declaration\n" +
"----------\n"
};
private String resultForMissingComments(int visibility) {
StringBuffer result = new StringBuffer("----------\n");
for (int i=0; i<=visibility; i++) {
result.append(X_MISSING_COMMENTS_ERRORS[i]);
}
if (CompilerOptions.ENABLED.equals(this.reportMissingJavadocCommentsOverriding)) {
result.append("----------\n");
result.append(Y_MISSING_COMMENTS_ERRORS[this.PUBLIC_VISIBILITY]);
if (visibility >= this.PROTECTED_VISIBILITY) {
result.append(Y_MISSING_COMMENTS_ERRORS[this.PROTECTED_VISIBILITY]);
if (visibility >= this.DEFAULT_VISIBILITY) {
result.append(Y_MISSING_COMMENTS_ERRORS[this.DEFAULT_VISIBILITY]);
if (visibility == this.PRIVATE_VISIBILITY) {
result.append(Y_MISSING_COMMENTS_ERRORS[this.PRIVATE_VISIBILITY]);
}
}
}
}
// Private level is always reported for as it never overrides...
else if (visibility == this.PRIVATE_VISIBILITY) {
result.append(Y_MISSING_COMMENTS_ERRORS[this.PRIVATE_VISIBILITY+1]);
}
return result.toString();
}
public JavadocTestOptions(String name) {
super(name);
}
public static Class javadocTestClass() {
return JavadocTestOptions.class;
}
public static Test suite() {
return buildAllCompliancesTestSuite(javadocTestClass());
}
static { // Use this static to initialize testNames (String[]) , testRange (int[2]), testNumbers (int[])
}
/**
* @return Returns the docCommentSupport.
*
public String getNamePrefix() {
if (this.localDocCommentSupport == null) {
return super.getNamePrefix();
} else {
return this.localDocCommentSupport;
}
}
*/
@Override
protected Map getCompilerOptions() {
Map options = super.getCompilerOptions();
// Set javadoc options if non null
if (this.docCommentSupport != null)
options.put(CompilerOptions.OPTION_DocCommentSupport, this.docCommentSupport);
if (this.reportInvalidJavadoc != null)
options.put(CompilerOptions.OPTION_ReportInvalidJavadoc, this.reportInvalidJavadoc);
if (this.reportInvalidJavadocTagsVisibility != null)
options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsVisibility, this.reportInvalidJavadocTagsVisibility);
if (this.reportInvalidJavadocTags != null)
options.put(CompilerOptions.OPTION_ReportInvalidJavadocTags, this.reportInvalidJavadocTags);
if (this.reportInvalidJavadocTagsDeprecatedRef != null)
options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsDeprecatedRef, this.reportInvalidJavadocTagsDeprecatedRef);
if (this.reportInvalidJavadocTagsNotVisibleRef!= null)
options.put(CompilerOptions.OPTION_ReportInvalidJavadocTagsNotVisibleRef, this.reportInvalidJavadocTagsNotVisibleRef);
if (this.reportMissingJavadocTags != null)
options.put(CompilerOptions.OPTION_ReportMissingJavadocTags, this.reportMissingJavadocTags);
if (this.reportMissingJavadocTagsVisibility != null)
options.put(CompilerOptions.OPTION_ReportMissingJavadocTagsVisibility, this.reportMissingJavadocTagsVisibility);
if (this.reportMissingJavadocTagsOverriding != null)
options.put(CompilerOptions.OPTION_ReportMissingJavadocTagsOverriding, this.reportMissingJavadocTagsOverriding);
if (this.reportMissingJavadocComments != null)
options.put(CompilerOptions.OPTION_ReportMissingJavadocComments, this.reportMissingJavadocComments);
if (this.reportMissingJavadocCommentsVisibility != null)
options.put(CompilerOptions.OPTION_ReportMissingJavadocCommentsVisibility, this.reportMissingJavadocCommentsVisibility);
if (this.reportMissingJavadocCommentsOverriding != null)
options.put(CompilerOptions.OPTION_ReportMissingJavadocCommentsOverriding, this.reportMissingJavadocCommentsOverriding);
// Ignore other options to avoid polluting warnings
options.put(CompilerOptions.OPTION_ReportFieldHiding, CompilerOptions.IGNORE);
options.put(CompilerOptions.OPTION_ReportSyntheticAccessEmulation, CompilerOptions.IGNORE);
options.put(CompilerOptions.OPTION_ReportUnusedLocal, CompilerOptions.IGNORE);
options.put(CompilerOptions.OPTION_ReportUnusedPrivateMember, CompilerOptions.IGNORE);
return options;
}
/* (non-Javadoc)
* @see junit.framework.TestCase#setUp()
*/
@Override
protected void setUp() throws Exception {
super.setUp();
this.reportInvalidJavadoc = null;
this.reportInvalidJavadocTagsVisibility = null;
this.reportInvalidJavadocTags = null;
this.reportInvalidJavadocTagsDeprecatedRef = null;
this.reportInvalidJavadocTagsNotVisibleRef = null;
this.reportMissingJavadocTags = null;
this.reportMissingJavadocTagsVisibility = null;
this.reportMissingJavadocTagsOverriding = null;
this.reportMissingJavadocComments = null;
this.reportMissingJavadocCommentsVisibility = null;
this.reportMissingJavadocCommentsOverriding = null;
}
/*
* Tests for 'invalid javadoc' options when no doc support is set
*/
public void testInvalidTagsClassNoSupport() {
this.docCommentSupport = CompilerOptions.DISABLED;
runConformTest(CLASSES_INVALID_COMMENT);
}
public void testInvalidTagsFieldNoSupport() {
this.docCommentSupport = CompilerOptions.DISABLED;
runConformTest(FIELDS_INVALID_COMMENT);
}
public void testInvalidTagsMethodNoSupport() {
this.docCommentSupport = CompilerOptions.DISABLED;
runConformTest(METHODS_INVALID_COMMENT);
}
public void testInvalidTagsConstructorNoSupport() {
this.docCommentSupport = CompilerOptions.DISABLED;
runConformTest(CONSTRUCTORS_INVALID_COMMENT);
}
/*
* Tests for 'invalid javadoc' options
*/
// Test default invalid javadoc (means "ignore" with tags"disabled" and visibility "public")
public void testInvalidTagsClassDefaults() {
runConformTest(CLASSES_INVALID_COMMENT);
}
public void testInvalidTagsFieldDefaults() {
runConformTest(FIELDS_INVALID_COMMENT);
}
public void testInvalidTagsMethodDefaults() {
runConformTest(METHODS_INVALID_COMMENT);
}
public void testInvalidTagsConstructorDefaults() {
runConformTest(CONSTRUCTORS_INVALID_COMMENT);
}
// Test invalid javadoc "error" + tags "disabled" and visibility "public"
public void testInvalidTagsClassErrorNotags() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.DISABLED;
runConformTest(CLASSES_INVALID_COMMENT);
}
public void testInvalidTagsFieldErrorNotags() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.DISABLED;
runConformTest(FIELDS_INVALID_COMMENT);
}
public void testInvalidTagsMethodErrorNotags() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.DISABLED;
runConformTest(METHODS_INVALID_COMMENT);
}
public void testInvalidTagsConstructorErrorNotags() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.DISABLED;
runConformTest(CONSTRUCTORS_INVALID_COMMENT);
}
// Test invalid javadoc "error" + tags "enabled" and visibility "public"
public void testInvalidTagsClassErrorTagsPublic() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.PUBLIC_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsFieldErrorTagsPublic() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.PUBLIC_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsMethodErrorTagsPublic() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.PUBLIC_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsConstructorErrorTagsPublic() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.PUBLIC_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test invalid javadoc "error" + tags "enabled" and visibility "protected"
public void testInvalidTagsClassErrorTagsProtected() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.PROTECTED_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsFieldErrorTagsProtected() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.PROTECTED_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsMethodErrorTagsProtected() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.PROTECTED_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsConstructorErrorTagsProtected() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.PROTECTED_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test invalid javadoc "error" + tags "enabled" and visibility "default"
public void testInvalidTagsClassErrorTagsPackage() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.DEFAULT_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsFieldErrorTagsPackage() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.DEFAULT_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsMethodErrorTagsPackage() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.DEFAULT_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsConstructorErrorTagsPackage() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.DEFAULT_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test invalid javadoc "error" + tags "enabled" and visibility "private"
public void testInvalidTagsClassErrorTagsPrivate() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
runErrorsTest(CLASSES_INVALID_COMMENT, this.PRIVATE_VISIBILITY, false);
}
public void testInvalidTagsFieldErrorTagsPrivate() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
runErrorsTest(FIELDS_INVALID_COMMENT, this.PRIVATE_VISIBILITY, false);
}
public void testInvalidTagsMethodErrorTagsPrivate() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
runErrorsTest(METHODS_INVALID_COMMENT, this.PRIVATE_VISIBILITY, true);
}
public void testInvalidTagsConstructorErrorTagsPrivate() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
runErrorsTest(CONSTRUCTORS_INVALID_COMMENT, this.PRIVATE_VISIBILITY, true);
}
// Test invalid javadoc "error" + tags "enabled" but invalid deprecated references "disabled" and visibility "public"
public void testInvalidTagsDeprecatedRefClassErrorTagsPublic() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.PUBLIC_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedRefFieldErrorTagsPublic() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.PUBLIC_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedRefMethodErrorTagsPublic() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.PUBLIC_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedRefConstructorErrorTagsPublic() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.PUBLIC_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test invalid javadoc "error" + tags "enabled" but invalid deprecated references "disabled" visibility "protected"
public void testInvalidTagsDeprecatedRefClassErrorTagsProtected() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.PROTECTED_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedRefFieldErrorTagsProtected() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.PROTECTED_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedRefMethodErrorTagsProtected() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.PROTECTED_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedRefConstructorErrorTagsProtected() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.PROTECTED_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test invalid javadoc "error" + tags "enabled" but invalid deprecated references "disabled" and visibility "default"
public void testInvalidTagsDeprecatedRefClassErrorTagsPackage() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.DEFAULT_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedRefFieldErrorTagsPackage() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.DEFAULT_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedRefMethodErrorTagsPackage() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.DEFAULT_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedRefConstructorErrorTagsPackage() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.DEFAULT_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test invalid javadoc "error" + tags "enabled" but invalid deprecated references "disabled" and visibility "private"
public void testInvalidTagsDeprecatedRefClassErrorTagsPrivate() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.PRIVATE_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedRefFieldErrorTagsPrivate() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.PRIVATE_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedRefMethodErrorTagsPrivate() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.PRIVATE_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedRefConstructorErrorTagsPrivate() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.PRIVATE_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test invalid javadoc "error" + tags "enabled" but invalid not visible references "disabled" and visibility "public"
public void testInvalidTagsNotVisibleRefClassErrorTagsPublic() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.PUBLIC_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsNotVisibleRefFieldErrorTagsPublic() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.PUBLIC_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsNotVisibleRefMethodErrorTagsPublic() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.PUBLIC_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsNotVisibleRefConstructorErrorTagsPublic() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.PUBLIC_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test invalid javadoc "error" + tags "enabled" but invalid not visible references "disabled" visibility "protected"
public void testInvalidTagsNotVisibleRefClassErrorTagsProtected() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.PROTECTED_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsNotVisibleRefFieldErrorTagsProtected() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.PROTECTED_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsNotVisibleRefMethodErrorTagsProtected() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.PROTECTED_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsNotVisibleRefConstructorErrorTagsProtected() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.PROTECTED_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test invalid javadoc "error" + tags "enabled" but invalid not visible references "disabled" and visibility "default"
public void testInvalidTagsNotVisibleRefClassErrorTagsPackage() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.DEFAULT_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsNotVisibleRefFieldErrorTagsPackage() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.DEFAULT_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsNotVisibleRefMethodErrorTagsPackage() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.DEFAULT_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsNotVisibleRefConstructorErrorTagsPackage() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.DEFAULT_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test invalid javadoc "error" + tags "enabled" but invalid not visible references "disabled" and visibility "private"
public void testInvalidTagsNotVisibleRefClassErrorTagsPrivate() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.PRIVATE_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsNotVisibleRefFieldErrorTagsPrivate() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.PRIVATE_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsNotVisibleRefMethodErrorTagsPrivate() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.PRIVATE_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsNotVisibleRefConstructorErrorTagsPrivate() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.PRIVATE_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test invalid javadoc "error" + tags "enabled" but invalid deprecated or not visible references "disabled" and visibility "public"
public void testInvalidTagsDeprecatedAndNotVisibleRefClassErrorTagsPublic() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.PUBLIC_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedAndNotVisibleRefFieldErrorTagsPublic() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.PUBLIC_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedAndNotVisibleRefMethodErrorTagsPublic() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.PUBLIC_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedAndNotVisibleRefConstructorErrorTagsPublic() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PUBLIC;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.PUBLIC_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test invalid javadoc "error" + tags "enabled" but invalid deprecated or not visible references "disabled" visibility "protected"
public void testInvalidTagsDeprecatedAndNotVisibleRefClassErrorTagsProtected() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.PROTECTED_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedAndNotVisibleRefFieldErrorTagsProtected() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.PROTECTED_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedAndNotVisibleRefMethodErrorTagsProtected() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.PROTECTED_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedAndNotVisibleRefConstructorErrorTagsProtected() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PROTECTED;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.PROTECTED_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test invalid javadoc "error" + tags "enabled" but invalid deprecated or not visible references "disabled" and visibility "default"
public void testInvalidTagsDeprecatedAndNotVisibleRefClassErrorTagsPackage() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.DEFAULT_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedAndNotVisibleRefFieldErrorTagsPackage() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.DEFAULT_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedAndNotVisibleRefMethodErrorTagsPackage() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.DEFAULT_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedAndNotVisibleRefConstructorErrorTagsPackage() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.DEFAULT;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.DEFAULT_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test invalid javadoc "error" + tags "enabled" but invalid deprecated or not visible references "disabled" and visibility "private"
public void testInvalidTagsDeprecatedAndNotVisibleRefClassErrorTagsPrivate() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
runNegativeTest(CLASSES_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.PRIVATE_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedAndNotVisibleRefFieldErrorTagsPrivate() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
runNegativeTest(FIELDS_INVALID_COMMENT, resultForInvalidTagsClassOrField(this.PRIVATE_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedAndNotVisibleRefMethodErrorTagsPrivate() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
runNegativeTest(METHODS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.PRIVATE_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
public void testInvalidTagsDeprecatedAndNotVisibleRefConstructorErrorTagsPrivate() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTagsDeprecatedRef = CompilerOptions.DISABLED;
this.reportInvalidJavadocTagsNotVisibleRef = CompilerOptions.DISABLED;
runNegativeTest(CONSTRUCTORS_INVALID_COMMENT, resultForInvalidTagsMethodOrConstructor(this.PRIVATE_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
/*
* Tests for 'missing javadoc tags' options
*/
// Test default missing javadoc tags (means "ignore" with visibility "public" and overriding="enabled")
public void testMissingTagsDefaults() {
runConformTest(MISSING_TAGS);
}
// Test missing javadoc tags "error" + "public" visibility + "enabled" overriding
public void testMissingTagsErrorPublicOverriding() {
this.reportMissingJavadocTags = CompilerOptions.ERROR;
this.reportMissingJavadocTagsVisibility = CompilerOptions.PUBLIC;
this.reportMissingJavadocTagsOverriding = CompilerOptions.ENABLED;
runNegativeTest(MISSING_TAGS, resultForMissingTags(this.PUBLIC_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test missing javadoc tags "error" + "public" visibility + "disabled" overriding
public void testMissingTagsErrorPublic() {
this.reportMissingJavadocTags = CompilerOptions.ERROR;
this.reportMissingJavadocTagsVisibility = CompilerOptions.PUBLIC;
this.reportMissingJavadocTagsOverriding = CompilerOptions.DISABLED;
runNegativeTest(MISSING_TAGS, resultForMissingTags(this.PUBLIC_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test missing javadoc tags "error" + "protected" visibility + "enabled" overriding
public void testMissingTagsErrorProtectedOverriding() {
this.reportMissingJavadocTags = CompilerOptions.ERROR;
this.reportMissingJavadocTagsVisibility = CompilerOptions.PROTECTED;
this.reportMissingJavadocTagsOverriding = CompilerOptions.ENABLED;
runNegativeTest(MISSING_TAGS, resultForMissingTags(this.PROTECTED_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test missing javadoc tags "error" + "protected" visibility + "disabled" overriding
public void testMissingTagsErrorProtected() {
this.reportMissingJavadocTags = CompilerOptions.ERROR;
this.reportMissingJavadocTagsVisibility = CompilerOptions.PROTECTED;
this.reportMissingJavadocTagsOverriding = CompilerOptions.DISABLED;
runNegativeTest(MISSING_TAGS, resultForMissingTags(this.PROTECTED_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test missing javadoc tags "error" + "default" visibility + "enabled" overriding
public void testMissingTagsErrorPackageOverriding() {
this.reportMissingJavadocTags = CompilerOptions.ERROR;
this.reportMissingJavadocTagsVisibility = CompilerOptions.DEFAULT;
this.reportMissingJavadocTagsOverriding = CompilerOptions.ENABLED;
runNegativeTest(MISSING_TAGS, resultForMissingTags(this.DEFAULT_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test missing javadoc tags "error" + "default" visibility + "disabled" overriding
public void testMissingTagsErrorPackage() {
this.reportMissingJavadocTags = CompilerOptions.ERROR;
this.reportMissingJavadocTagsVisibility = CompilerOptions.DEFAULT;
this.reportMissingJavadocTagsOverriding = CompilerOptions.DISABLED;
runNegativeTest(MISSING_TAGS, resultForMissingTags(this.DEFAULT_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test missing javadoc tags "error" + "private" visibility + "enabled" overriding
public void testMissingTagsErrorPrivateOverriding() {
this.reportMissingJavadocTags = CompilerOptions.ERROR;
this.reportMissingJavadocTagsVisibility = CompilerOptions.PRIVATE;
this.reportMissingJavadocTagsOverriding = CompilerOptions.ENABLED;
runNegativeTest(MISSING_TAGS, resultForMissingTags(this.PRIVATE_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test missing javadoc tags "error" + "private" visibility + "disabled" overriding
public void testMissingTagsErrorPrivate() {
this.reportMissingJavadocTags = CompilerOptions.ERROR;
this.reportMissingJavadocTagsVisibility = CompilerOptions.PRIVATE;
this.reportMissingJavadocTagsOverriding = CompilerOptions.DISABLED;
runNegativeTest(MISSING_TAGS, resultForMissingTags(this.PRIVATE_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
/*
* Tests for 'missing javadoc comments' options
*/
// Test default missing javadoc comments (means "ignore" with visibility "public" and overriding="enabled")
public void testMissingCommentsDefaults() {
runConformTest(MISSING_COMMENTS);
}
// Test missing javadoc comments "error" + "public" visibility + "enabled" overriding
public void testMissingCommentsErrorPublicOverriding() {
this.reportMissingJavadocComments = CompilerOptions.ERROR;
this.reportMissingJavadocCommentsVisibility = CompilerOptions.PUBLIC;
this.reportMissingJavadocCommentsOverriding = CompilerOptions.ENABLED;
runNegativeTest(MISSING_COMMENTS, resultForMissingComments(this.PUBLIC_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test missing javadoc comments "error" + "public" visibility + "disabled" overriding
public void testMissingCommentsErrorPublic() {
this.reportMissingJavadocComments = CompilerOptions.ERROR;
this.reportMissingJavadocCommentsVisibility = CompilerOptions.PUBLIC;
this.reportMissingJavadocCommentsOverriding = CompilerOptions.DISABLED;
runNegativeTest(MISSING_COMMENTS, resultForMissingComments(this.PUBLIC_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test missing javadoc comments "error" + "protected" visibility + "enabled" overriding
public void testMissingCommentsErrorProtectedOverriding() {
this.reportMissingJavadocComments = CompilerOptions.ERROR;
this.reportMissingJavadocCommentsVisibility = CompilerOptions.PROTECTED;
this.reportMissingJavadocCommentsOverriding = CompilerOptions.ENABLED;
runNegativeTest(MISSING_COMMENTS, resultForMissingComments(this.PROTECTED_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test missing javadoc comments "error" + "protected" visibility + "disabled" overriding
public void testMissingCommentsErrorProtected() {
this.reportMissingJavadocComments = CompilerOptions.ERROR;
this.reportMissingJavadocCommentsVisibility = CompilerOptions.PROTECTED;
this.reportMissingJavadocCommentsOverriding = CompilerOptions.DISABLED;
runNegativeTest(MISSING_COMMENTS, resultForMissingComments(this.PROTECTED_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test missing javadoc comments "error" + "default" visibility + "enabled" overriding
public void testMissingCommentsErrorPackageOverriding() {
this.reportMissingJavadocComments = CompilerOptions.ERROR;
this.reportMissingJavadocCommentsVisibility = CompilerOptions.DEFAULT;
this.reportMissingJavadocCommentsOverriding = CompilerOptions.ENABLED;
runNegativeTest(MISSING_COMMENTS, resultForMissingComments(this.DEFAULT_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test missing javadoc comments "error" + "default" visibility + "disabled" overriding
public void testMissingCommentsErrorPackage() {
this.reportMissingJavadocComments = CompilerOptions.ERROR;
this.reportMissingJavadocCommentsVisibility = CompilerOptions.DEFAULT;
this.reportMissingJavadocCommentsOverriding = CompilerOptions.DISABLED;
runNegativeTest(MISSING_COMMENTS, resultForMissingComments(this.DEFAULT_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test missing javadoc comments "error" + "private" visibility + "enabled" overriding
public void testMissingCommentsErrorPrivateOverriding() {
this.reportMissingJavadocComments = CompilerOptions.ERROR;
this.reportMissingJavadocCommentsVisibility = CompilerOptions.PRIVATE;
this.reportMissingJavadocCommentsOverriding = CompilerOptions.ENABLED;
runNegativeTest(MISSING_COMMENTS, resultForMissingComments(this.PRIVATE_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
// Test missing javadoc comments "error" + "private" visibility + "disabled" overriding
public void testMissingCommentsErrorPrivate() {
this.reportMissingJavadocComments = CompilerOptions.ERROR;
this.reportMissingJavadocCommentsVisibility = CompilerOptions.PRIVATE;
this.reportMissingJavadocCommentsOverriding = CompilerOptions.DISABLED;
runNegativeTest(MISSING_COMMENTS, resultForMissingComments(this.PRIVATE_VISIBILITY),
JavacTestOptions.Excuse.EclipseWarningConfiguredAsError);
}
/*
* Crossed tests
*/
public void testInvalidTagsClassWithMissingTagsOption() {
this.reportMissingJavadocTags = CompilerOptions.ERROR;
this.reportMissingJavadocTagsVisibility = CompilerOptions.PRIVATE;
runConformTest(CLASSES_INVALID_COMMENT);
}
public void testInvalidTagsFieldWithMissingTagsOption() {
this.reportMissingJavadocTags = CompilerOptions.ERROR;
this.reportMissingJavadocTagsVisibility = CompilerOptions.PRIVATE;
runConformTest(FIELDS_INVALID_COMMENT);
}
public void testInvalidTagsMethodWithMissingTagsOption() {
this.reportMissingJavadocTags = CompilerOptions.ERROR;
this.reportMissingJavadocTagsVisibility = CompilerOptions.PRIVATE;
runConformTest(METHODS_INVALID_COMMENT);
}
public void testInvalidTagsConstructorWithMissingTagsOption() {
this.reportMissingJavadocTags = CompilerOptions.ERROR;
this.reportMissingJavadocTagsVisibility = CompilerOptions.PRIVATE;
runConformTest(CONSTRUCTORS_INVALID_COMMENT);
}
public void testMissingTagsWithInvalidTagsOption() {
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ENABLED;
this.reportInvalidJavadocTagsVisibility = CompilerOptions.PRIVATE;
runConformTest(MISSING_TAGS);
}
/**
* Test fix for bug 52264.
* @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=52264">52264</a>
*/
// Test invalid javadoc "error" with javadoc comment support disabled
public void testInvalidTagsJavadocSupportDisabled() {
this.docCommentSupport = CompilerOptions.DISABLED;
this.reportInvalidJavadoc = CompilerOptions.ERROR;
this.reportInvalidJavadocTags = CompilerOptions.ERROR;
runConformTest(CLASSES_INVALID_COMMENT);
runConformTest(FIELDS_INVALID_COMMENT);
runConformTest(METHODS_INVALID_COMMENT);
runConformTest(CONSTRUCTORS_INVALID_COMMENT);
}
// Test missing javadoc comments "error" with javadoc comment support disabled
public void testMissingCommentsJavadocSupportDisabled() {
this.docCommentSupport = CompilerOptions.DISABLED;
this.reportMissingJavadocComments = CompilerOptions.ERROR;
runConformReferenceTest(MISSING_COMMENTS);
}
// Test missing javadoc tags "error" with javadoc comment support disabled
public void testMissingTagsJavadocSupportDisabled() {
this.docCommentSupport = CompilerOptions.DISABLED;
this.reportMissingJavadocTags = CompilerOptions.ERROR;
runConformReferenceTest(MISSING_TAGS);
}
}