From f876fce56c6a4694c120a4121d2bf24e75b9e878 Mon Sep 17 00:00:00 2001 From: ccalvarin Date: Tue, 27 Jun 2017 19:12:36 +0200 Subject: Update the --incompatible_ flag requirements to use the metadata tag. Leave the category for now as the generated docs still do not use the new categorization. PiperOrigin-RevId: 160290297 --- src/test/java/com/google/devtools/build/lib/BUILD | 1 + .../AllIncompatibleChangesExpansionTest.java | 101 ++++++++++++++++++++- 2 files changed, 97 insertions(+), 5 deletions(-) (limited to 'src/test/java/com/google/devtools/build') diff --git a/src/test/java/com/google/devtools/build/lib/BUILD b/src/test/java/com/google/devtools/build/lib/BUILD index 55282d337e..e90994734e 100644 --- a/src/test/java/com/google/devtools/build/lib/BUILD +++ b/src/test/java/com/google/devtools/build/lib/BUILD @@ -1040,6 +1040,7 @@ java_test( "//src/main/java/com/google/devtools/build/lib/buildeventstream/transports", "//src/main/java/com/google/devtools/common/options", "//src/main/protobuf:invocation_policy_java_proto", + "//src/main/protobuf:option_filters_java_proto", "//src/main/protobuf:test_status_java_proto", "//third_party:guava", "//third_party:junit4", diff --git a/src/test/java/com/google/devtools/build/lib/runtime/AllIncompatibleChangesExpansionTest.java b/src/test/java/com/google/devtools/build/lib/runtime/AllIncompatibleChangesExpansionTest.java index 2b3dbaa4c8..7f91d173e0 100644 --- a/src/test/java/com/google/devtools/build/lib/runtime/AllIncompatibleChangesExpansionTest.java +++ b/src/test/java/com/google/devtools/build/lib/runtime/AllIncompatibleChangesExpansionTest.java @@ -25,9 +25,12 @@ import com.google.devtools.common.options.ExpansionFunction; import com.google.devtools.common.options.InvocationPolicyEnforcer; import com.google.devtools.common.options.IsolatedOptionsData; import com.google.devtools.common.options.Option; +import com.google.devtools.common.options.OptionDocumentationCategory; import com.google.devtools.common.options.OptionsBase; import com.google.devtools.common.options.OptionsParser; import com.google.devtools.common.options.OptionsParsingException; +import com.google.devtools.common.options.proto.OptionFilters.OptionEffectTag; +import com.google.devtools.common.options.proto.OptionFilters.OptionMetadataTag; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; @@ -44,20 +47,35 @@ public class AllIncompatibleChangesExpansionTest { public static class ExampleOptions extends OptionsBase { @Option( name = "all", + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.NO_OP}, defaultValue = "null", expansionFunction = AllIncompatibleChangesExpansion.class ) public Void all; - @Option(name = "X", defaultValue = "false") + @Option( + name = "X", + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.NO_OP}, + defaultValue = "false" + ) public boolean x; - @Option(name = "Y", defaultValue = "true") + @Option( + name = "Y", + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.NO_OP}, + defaultValue = "true" + ) public boolean y; @Option( name = "incompatible_A", category = "incompatible changes", + metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE}, + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.NO_OP}, defaultValue = "false", help = "Migrate to A" ) @@ -66,6 +84,9 @@ public class AllIncompatibleChangesExpansionTest { @Option( name = "incompatible_B", category = "incompatible changes", + metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE}, + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.NO_OP}, defaultValue = "false", help = "Migrate to B" ) @@ -77,6 +98,9 @@ public class AllIncompatibleChangesExpansionTest { @Option( name = "incompatible_expX", category = "incompatible changes", + metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE}, + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.NO_OP}, defaultValue = "null", expansion = {"--X"}, help = "Start using X" @@ -94,6 +118,9 @@ public class AllIncompatibleChangesExpansionTest { @Option( name = "incompatible_expY", category = "incompatible changes", + metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE}, + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.NO_OP}, defaultValue = "null", expansionFunction = YExpansion.class, help = "Stop using Y" @@ -196,6 +223,9 @@ public class AllIncompatibleChangesExpansionTest { @Option( name = "badname", category = "incompatible changes", + metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE}, + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.NO_OP}, defaultValue = "false", help = "nohelp" ) @@ -210,9 +240,19 @@ public class AllIncompatibleChangesExpansionTest { + "starting with \"incompatible_\""); } - /** Dummy comment (linter suppression) */ + /** + * Option with the right prefix and tag, but the wrong "category." The category is deprecated and + * this test will be deleted when the option field is removed. + */ public static class BadCategoryOptions extends OptionsBase { - @Option(name = "incompatible_bad", category = "badcat", defaultValue = "false", help = "nohelp") + @Option( + name = "incompatible_bad", + metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE}, + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.NO_OP}, + defaultValue = "false", + help = "nohelp" + ) public boolean bad; } @@ -221,11 +261,34 @@ public class AllIncompatibleChangesExpansionTest { assertBadness(BadCategoryOptions.class, "must have category \"incompatible changes\""); } + /** Option with the right prefix and "category," but the wrong metadata tag. */ + public static class BadTagOptions extends OptionsBase { + @Option( + name = "incompatible_bad", + category = "incompatible changes", + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.NO_OP}, + defaultValue = "false", + help = "nohelp" + ) + public boolean bad; + } + + @Test + public void badTag() { + assertBadness( + BadTagOptions.class, + "must have metadata tag \"OptionMetadataTag.INCOMPATIBLE_CHANGE\""); + } + /** Dummy comment (linter suppression) */ public static class BadTypeOptions extends OptionsBase { @Option( name = "incompatible_bad", category = "incompatible changes", + metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE}, + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.NO_OP}, defaultValue = "0", help = "nohelp" ) @@ -239,7 +302,14 @@ public class AllIncompatibleChangesExpansionTest { /** Dummy comment (linter suppression) */ public static class BadHelpOptions extends OptionsBase { - @Option(name = "incompatible_bad", category = "incompatible changes", defaultValue = "false") + @Option( + name = "incompatible_bad", + category = "incompatible changes", + metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE}, + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.NO_OP}, + defaultValue = "false" + ) public boolean bad; } @@ -253,6 +323,9 @@ public class AllIncompatibleChangesExpansionTest { @Option( name = "incompatible_bad", category = "incompatible changes", + metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE}, + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.NO_OP}, defaultValue = "false", help = "nohelp", abbrev = 'x' @@ -270,6 +343,9 @@ public class AllIncompatibleChangesExpansionTest { @Option( name = "incompatible_bad", category = "incompatible changes", + metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE}, + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.NO_OP}, defaultValue = "false", help = "nohelp", valueHelp = "x" @@ -287,6 +363,9 @@ public class AllIncompatibleChangesExpansionTest { @Option( name = "incompatible_bad", category = "incompatible changes", + metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE}, + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.NO_OP}, defaultValue = "false", help = "nohelp", converter = Converters.BooleanConverter.class @@ -304,6 +383,9 @@ public class AllIncompatibleChangesExpansionTest { @Option( name = "incompatible_bad", category = "incompatible changes", + metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE}, + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.NO_OP}, defaultValue = "null", help = "nohelp", allowMultiple = true @@ -321,6 +403,9 @@ public class AllIncompatibleChangesExpansionTest { @Option( name = "incompatible_bad", category = "incompatible changes", + metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE}, + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.NO_OP}, defaultValue = "false", help = "nohelp", implicitRequirements = "--x" @@ -339,6 +424,9 @@ public class AllIncompatibleChangesExpansionTest { @Option( name = "incompatible_bad", category = "incompatible changes", + metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE}, + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.NO_OP}, defaultValue = "false", help = "nohelp", oldName = "x" @@ -356,6 +444,9 @@ public class AllIncompatibleChangesExpansionTest { @Option( name = "incompatible_bad", category = "incompatible changes", + metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE}, + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.NO_OP}, defaultValue = "false", help = "nohelp", wrapperOption = true -- cgit v1.2.3