Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b423208e authored by Zhi Dou's avatar Zhi Dou
Browse files

record read only flags in test helper class

This change adds a public method isFlagReadOnly in CustomFeatureFlags
class. The testing tools can call this method to decide whether a given
flag is read only or read write.

This change also make the related fields and methods to static.

Test: atest aconfig.test
Bug: 412743688
Change-Id: If91fa79c0a6a5e58a37eae34b5f86429dc31fbaa
parent 679c4317
Loading
Loading
Loading
Loading
+26 −18
Original line number Diff line number Diff line
@@ -482,16 +482,20 @@ mod tests {
                FeatureFlags::enabledRw);
        }

        public boolean isFlagReadOnlyOptimized(String flagName) {
            if (mReadOnlyFlagsSet.contains(flagName) &&
        public static boolean isFlagReadOnlyOptimized(String flagName) {
            if (READ_ONLY_FLAGS_SET.contains(flagName) &&
                isOptimizationEnabled()) {
                    return true;
            }
            return false;
        }

        public static boolean isFlagReadOnly(String flagName) {
            return READ_ONLY_FLAGS_SET.contains(flagName);
        }

        @com.android.aconfig.annotations.AssumeTrueForR8
        private boolean isOptimizationEnabled() {
        private static boolean isOptimizationEnabled() {
            return false;
        }

@@ -513,7 +517,7 @@ mod tests {
            );
        }

        private Set<String> mReadOnlyFlagsSet = new HashSet<>(
        private static final Set<String> READ_ONLY_FLAGS_SET = new HashSet<>(
            Arrays.asList(
                Flags.FLAG_DISABLED_RO,
                Flags.FLAG_ENABLED_FIXED_RO,
@@ -893,23 +897,23 @@ mod tests {
                );
            }

            private Set<String> mReadOnlyFlagsSet = new HashSet<>(
            private static final Set<String> READ_ONLY_FLAGS_SET = new HashSet<>(
                Arrays.asList(
                    ""
                )
            );

            private Map<String, Boolean> mFinalizedFlags = new HashMap<>(
            private static final Map<String, Boolean> FINALIZED_FLAGS = new HashMap<>(
                Map.ofEntries(
                    Map.entry("", false)
                )
            );

            public boolean isFlagFinalized(String flagName) {
                if (!mFinalizedFlags.containsKey(flagName)) {
            public static boolean isFlagFinalized(String flagName) {
                if (!FINALIZED_FLAGS.containsKey(flagName)) {
                    return false;
                }
                return mFinalizedFlags.get(flagName);
                return FINALIZED_FLAGS.get(flagName);
            }
        }
    "#;
@@ -1114,24 +1118,24 @@ mod tests {
                );
            }

            private Set<String> mReadOnlyFlagsSet = new HashSet<>(
            private static final Set<String> READ_ONLY_FLAGS_SET = new HashSet<>(
                Arrays.asList(
                    ""
                )
            );

            private Map<String, Boolean> mFinalizedFlags = new HashMap<>(
            private static final Map<String, Boolean> FINALIZED_FLAGS = new HashMap<>(
                Map.ofEntries(
                    Map.entry(Flags.FLAG_DISABLED_RW_EXPORTED, Build.VERSION.SDK_INT >= 36 ? true : false),
                    Map.entry("", false)
                )
            );

            public boolean isFlagFinalized(String flagName) {
                if (!mFinalizedFlags.containsKey(flagName)) {
            public static boolean isFlagFinalized(String flagName) {
                if (!FINALIZED_FLAGS.containsKey(flagName)) {
                    return false;
                }
                return mFinalizedFlags.get(flagName);
                return FINALIZED_FLAGS.get(flagName);
            }
        }
    "#;
@@ -1555,16 +1559,20 @@ mod tests {
                    FeatureFlags::enabledRw);
            }

            public boolean isFlagReadOnlyOptimized(String flagName) {
                if (mReadOnlyFlagsSet.contains(flagName) &&
            public static boolean isFlagReadOnlyOptimized(String flagName) {
                if (READ_ONLY_FLAGS_SET.contains(flagName) &&
                    isOptimizationEnabled()) {
                        return true;
                }
                return false;
            }

            public static boolean isFlagReadOnly(String flagName) {
                return READ_ONLY_FLAGS_SET.contains(flagName);
            }

            @com.android.aconfig.annotations.AssumeTrueForR8
            private boolean isOptimizationEnabled() {
            private static boolean isOptimizationEnabled() {
                return false;
            }

@@ -1583,7 +1591,7 @@ mod tests {
                );
            }

            private Set<String> mReadOnlyFlagsSet = new HashSet<>(
            private static final Set<String> READ_ONLY_FLAGS_SET = new HashSet<>(
                Arrays.asList(
                    Flags.FLAG_DISABLED_RO,
                    Flags.FLAG_DISABLED_RW,
+12 −8
Original line number Diff line number Diff line
@@ -43,16 +43,20 @@ public class CustomFeatureFlags implements FeatureFlags \{
{{ endfor }}

{{ -if not library_exported }}
    public boolean isFlagReadOnlyOptimized(String flagName) \{
        if (mReadOnlyFlagsSet.contains(flagName) &&
    public static boolean isFlagReadOnlyOptimized(String flagName) \{
        if (READ_ONLY_FLAGS_SET.contains(flagName) &&
            isOptimizationEnabled()) \{
                return true;
        }
        return false;
    }

    public static boolean isFlagReadOnly(String flagName) \{
        return READ_ONLY_FLAGS_SET.contains(flagName);
    }

    @com.android.aconfig.annotations.AssumeTrueForR8
    private boolean isOptimizationEnabled() \{
    private static boolean isOptimizationEnabled() \{
        return false;
    }
{{ -endif }}
@@ -70,7 +74,7 @@ public class CustomFeatureFlags implements FeatureFlags \{
        );
    }

    private Set<String> mReadOnlyFlagsSet = new HashSet<>(
    private static final Set<String> READ_ONLY_FLAGS_SET = new HashSet<>(
        Arrays.asList(
            {{ -for item in flag_elements }}
            {{ -if not item.is_read_write }}
@@ -82,7 +86,7 @@ public class CustomFeatureFlags implements FeatureFlags \{
    );

{{ -if library_exported }}
    private Map<String, Boolean> mFinalizedFlags = new HashMap<>(
    private static final Map<String, Boolean> FINALIZED_FLAGS = new HashMap<>(
        Map.ofEntries(
            {{ -for item in flag_elements }}
            {{ -if item.finalized_sdk_present }}
@@ -93,11 +97,11 @@ public class CustomFeatureFlags implements FeatureFlags \{
        )
    );

    public boolean isFlagFinalized(String flagName) \{
        if (!mFinalizedFlags.containsKey(flagName)) \{
    public static boolean isFlagFinalized(String flagName) \{
        if (!FINALIZED_FLAGS.containsKey(flagName)) \{
            return false;
        }
        return mFinalizedFlags.get(flagName);
        return FINALIZED_FLAGS.get(flagName);
    }
{{ -endif }}
}