Merge "aconfig: Respect flag naming convention on test flags" into main
This commit is contained in:
@@ -170,6 +170,8 @@ public:
|
|||||||
|
|
||||||
virtual bool enabled_ro() = 0;
|
virtual bool enabled_ro() = 0;
|
||||||
|
|
||||||
|
virtual bool enabled_ro_exported() = 0;
|
||||||
|
|
||||||
virtual bool enabled_rw() = 0;
|
virtual bool enabled_rw() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -199,6 +201,10 @@ inline bool enabled_ro() {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline bool enabled_ro_exported() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
inline bool enabled_rw() {
|
inline bool enabled_rw() {
|
||||||
return provider_->enabled_rw();
|
return provider_->enabled_rw();
|
||||||
}
|
}
|
||||||
@@ -220,6 +226,8 @@ bool com_android_aconfig_test_enabled_fixed_ro();
|
|||||||
|
|
||||||
bool com_android_aconfig_test_enabled_ro();
|
bool com_android_aconfig_test_enabled_ro();
|
||||||
|
|
||||||
|
bool com_android_aconfig_test_enabled_ro_exported();
|
||||||
|
|
||||||
bool com_android_aconfig_test_enabled_rw();
|
bool com_android_aconfig_test_enabled_rw();
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
@@ -265,6 +273,10 @@ public:
|
|||||||
|
|
||||||
virtual void enabled_ro(bool val) = 0;
|
virtual void enabled_ro(bool val) = 0;
|
||||||
|
|
||||||
|
virtual bool enabled_ro_exported() = 0;
|
||||||
|
|
||||||
|
virtual void enabled_ro_exported(bool val) = 0;
|
||||||
|
|
||||||
virtual bool enabled_rw() = 0;
|
virtual bool enabled_rw() = 0;
|
||||||
|
|
||||||
virtual void enabled_rw(bool val) = 0;
|
virtual void enabled_rw(bool val) = 0;
|
||||||
@@ -322,6 +334,14 @@ inline void enabled_ro(bool val) {
|
|||||||
provider_->enabled_ro(val);
|
provider_->enabled_ro(val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline bool enabled_ro_exported() {
|
||||||
|
return provider_->enabled_ro_exported();
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void enabled_ro_exported(bool val) {
|
||||||
|
provider_->enabled_ro_exported(val);
|
||||||
|
}
|
||||||
|
|
||||||
inline bool enabled_rw() {
|
inline bool enabled_rw() {
|
||||||
return provider_->enabled_rw();
|
return provider_->enabled_rw();
|
||||||
}
|
}
|
||||||
@@ -363,6 +383,10 @@ bool com_android_aconfig_test_enabled_ro();
|
|||||||
|
|
||||||
void set_com_android_aconfig_test_enabled_ro(bool val);
|
void set_com_android_aconfig_test_enabled_ro(bool val);
|
||||||
|
|
||||||
|
bool com_android_aconfig_test_enabled_ro_exported();
|
||||||
|
|
||||||
|
void set_com_android_aconfig_test_enabled_ro_exported(bool val);
|
||||||
|
|
||||||
bool com_android_aconfig_test_enabled_rw();
|
bool com_android_aconfig_test_enabled_rw();
|
||||||
|
|
||||||
void set_com_android_aconfig_test_enabled_rw(bool val);
|
void set_com_android_aconfig_test_enabled_rw(bool val);
|
||||||
@@ -429,6 +453,10 @@ namespace com::android::aconfig::test {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual bool enabled_ro_exported() override {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
virtual bool enabled_rw() override {
|
virtual bool enabled_rw() override {
|
||||||
if (cache_[3] == -1) {
|
if (cache_[3] == -1) {
|
||||||
cache_[3] = server_configurable_flags::GetServerConfigurableFlag(
|
cache_[3] = server_configurable_flags::GetServerConfigurableFlag(
|
||||||
@@ -471,6 +499,10 @@ bool com_android_aconfig_test_enabled_ro() {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool com_android_aconfig_test_enabled_ro_exported() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool com_android_aconfig_test_enabled_rw() {
|
bool com_android_aconfig_test_enabled_rw() {
|
||||||
return com::android::aconfig::test::enabled_rw();
|
return com::android::aconfig::test::enabled_rw();
|
||||||
}
|
}
|
||||||
@@ -581,6 +613,19 @@ namespace com::android::aconfig::test {
|
|||||||
overrides_["enabled_ro"] = val;
|
overrides_["enabled_ro"] = val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual bool enabled_ro_exported() override {
|
||||||
|
auto it = overrides_.find("enabled_ro_exported");
|
||||||
|
if (it != overrides_.end()) {
|
||||||
|
return it->second;
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void enabled_ro_exported(bool val) override {
|
||||||
|
overrides_["enabled_ro_exported"] = val;
|
||||||
|
}
|
||||||
|
|
||||||
virtual bool enabled_rw() override {
|
virtual bool enabled_rw() override {
|
||||||
auto it = overrides_.find("enabled_rw");
|
auto it = overrides_.find("enabled_rw");
|
||||||
if (it != overrides_.end()) {
|
if (it != overrides_.end()) {
|
||||||
@@ -661,6 +706,17 @@ void set_com_android_aconfig_test_enabled_ro(bool val) {
|
|||||||
com::android::aconfig::test::enabled_ro(val);
|
com::android::aconfig::test::enabled_ro(val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool com_android_aconfig_test_enabled_ro_exported() {
|
||||||
|
return com::android::aconfig::test::enabled_ro_exported();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void set_com_android_aconfig_test_enabled_ro_exported(bool val) {
|
||||||
|
com::android::aconfig::test::enabled_ro_exported(val);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool com_android_aconfig_test_enabled_rw() {
|
bool com_android_aconfig_test_enabled_rw() {
|
||||||
return com::android::aconfig::test::enabled_rw();
|
return com::android::aconfig::test::enabled_rw();
|
||||||
}
|
}
|
||||||
|
@@ -193,6 +193,9 @@ mod tests {
|
|||||||
@com.android.aconfig.annotations.AssumeTrueForR8
|
@com.android.aconfig.annotations.AssumeTrueForR8
|
||||||
@UnsupportedAppUsage
|
@UnsupportedAppUsage
|
||||||
boolean enabledRo();
|
boolean enabledRo();
|
||||||
|
@com.android.aconfig.annotations.AssumeTrueForR8
|
||||||
|
@UnsupportedAppUsage
|
||||||
|
boolean enabledRoExported();
|
||||||
@UnsupportedAppUsage
|
@UnsupportedAppUsage
|
||||||
boolean enabledRw();
|
boolean enabledRw();
|
||||||
}
|
}
|
||||||
@@ -217,6 +220,8 @@ mod tests {
|
|||||||
/** @hide */
|
/** @hide */
|
||||||
public static final String FLAG_ENABLED_RO = "com.android.aconfig.test.enabled_ro";
|
public static final String FLAG_ENABLED_RO = "com.android.aconfig.test.enabled_ro";
|
||||||
/** @hide */
|
/** @hide */
|
||||||
|
public static final String FLAG_ENABLED_RO_EXPORTED = "com.android.aconfig.test.enabled_ro_exported";
|
||||||
|
/** @hide */
|
||||||
public static final String FLAG_ENABLED_RW = "com.android.aconfig.test.enabled_rw";
|
public static final String FLAG_ENABLED_RW = "com.android.aconfig.test.enabled_rw";
|
||||||
|
|
||||||
@com.android.aconfig.annotations.AssumeFalseForR8
|
@com.android.aconfig.annotations.AssumeFalseForR8
|
||||||
@@ -246,6 +251,11 @@ mod tests {
|
|||||||
public static boolean enabledRo() {
|
public static boolean enabledRo() {
|
||||||
return FEATURE_FLAGS.enabledRo();
|
return FEATURE_FLAGS.enabledRo();
|
||||||
}
|
}
|
||||||
|
@com.android.aconfig.annotations.AssumeTrueForR8
|
||||||
|
@UnsupportedAppUsage
|
||||||
|
public static boolean enabledRoExported() {
|
||||||
|
return FEATURE_FLAGS.enabledRoExported();
|
||||||
|
}
|
||||||
@UnsupportedAppUsage
|
@UnsupportedAppUsage
|
||||||
public static boolean enabledRw() {
|
public static boolean enabledRw() {
|
||||||
return FEATURE_FLAGS.enabledRw();
|
return FEATURE_FLAGS.enabledRw();
|
||||||
@@ -295,6 +305,11 @@ mod tests {
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
@UnsupportedAppUsage
|
@UnsupportedAppUsage
|
||||||
|
public boolean enabledRoExported() {
|
||||||
|
return getValue(Flags.FLAG_ENABLED_RO_EXPORTED);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
@UnsupportedAppUsage
|
||||||
public boolean enabledRw() {
|
public boolean enabledRw() {
|
||||||
return getValue(Flags.FLAG_ENABLED_RW);
|
return getValue(Flags.FLAG_ENABLED_RW);
|
||||||
}
|
}
|
||||||
@@ -324,6 +339,7 @@ mod tests {
|
|||||||
Map.entry(Flags.FLAG_DISABLED_RW_IN_OTHER_NAMESPACE, false),
|
Map.entry(Flags.FLAG_DISABLED_RW_IN_OTHER_NAMESPACE, false),
|
||||||
Map.entry(Flags.FLAG_ENABLED_FIXED_RO, false),
|
Map.entry(Flags.FLAG_ENABLED_FIXED_RO, false),
|
||||||
Map.entry(Flags.FLAG_ENABLED_RO, false),
|
Map.entry(Flags.FLAG_ENABLED_RO, false),
|
||||||
|
Map.entry(Flags.FLAG_ENABLED_RO_EXPORTED, false),
|
||||||
Map.entry(Flags.FLAG_ENABLED_RW, false)
|
Map.entry(Flags.FLAG_ENABLED_RW, false)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@@ -442,6 +458,11 @@ mod tests {
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
@UnsupportedAppUsage
|
@UnsupportedAppUsage
|
||||||
|
public boolean enabledRoExported() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
@UnsupportedAppUsage
|
||||||
public boolean enabledRw() {
|
public boolean enabledRw() {
|
||||||
if (!aconfig_test_is_cached) {
|
if (!aconfig_test_is_cached) {
|
||||||
load_overrides_aconfig_test();
|
load_overrides_aconfig_test();
|
||||||
@@ -494,19 +515,19 @@ mod tests {
|
|||||||
import android.compat.annotation.UnsupportedAppUsage;
|
import android.compat.annotation.UnsupportedAppUsage;
|
||||||
/** @hide */
|
/** @hide */
|
||||||
public final class Flags {
|
public final class Flags {
|
||||||
/** @hide */
|
|
||||||
public static final String FLAG_DISABLED_RW = "com.android.aconfig.test.disabled_rw";
|
|
||||||
/** @hide */
|
/** @hide */
|
||||||
public static final String FLAG_DISABLED_RW_EXPORTED = "com.android.aconfig.test.disabled_rw_exported";
|
public static final String FLAG_DISABLED_RW_EXPORTED = "com.android.aconfig.test.disabled_rw_exported";
|
||||||
|
/** @hide */
|
||||||
|
public static final String FLAG_ENABLED_RO_EXPORTED = "com.android.aconfig.test.enabled_ro_exported";
|
||||||
|
|
||||||
@UnsupportedAppUsage
|
|
||||||
public static boolean disabledRw() {
|
|
||||||
return FEATURE_FLAGS.disabledRw();
|
|
||||||
}
|
|
||||||
@UnsupportedAppUsage
|
@UnsupportedAppUsage
|
||||||
public static boolean disabledRwExported() {
|
public static boolean disabledRwExported() {
|
||||||
return FEATURE_FLAGS.disabledRwExported();
|
return FEATURE_FLAGS.disabledRwExported();
|
||||||
}
|
}
|
||||||
|
@UnsupportedAppUsage
|
||||||
|
public static boolean enabledRoExported() {
|
||||||
|
return FEATURE_FLAGS.enabledRoExported();
|
||||||
|
}
|
||||||
private static FeatureFlags FEATURE_FLAGS = new FeatureFlagsImpl();
|
private static FeatureFlags FEATURE_FLAGS = new FeatureFlagsImpl();
|
||||||
}
|
}
|
||||||
"#;
|
"#;
|
||||||
@@ -517,10 +538,10 @@ mod tests {
|
|||||||
import android.compat.annotation.UnsupportedAppUsage;
|
import android.compat.annotation.UnsupportedAppUsage;
|
||||||
/** @hide */
|
/** @hide */
|
||||||
public interface FeatureFlags {
|
public interface FeatureFlags {
|
||||||
@UnsupportedAppUsage
|
|
||||||
boolean disabledRw();
|
|
||||||
@UnsupportedAppUsage
|
@UnsupportedAppUsage
|
||||||
boolean disabledRwExported();
|
boolean disabledRwExported();
|
||||||
|
@UnsupportedAppUsage
|
||||||
|
boolean enabledRoExported();
|
||||||
}
|
}
|
||||||
"#;
|
"#;
|
||||||
|
|
||||||
@@ -534,17 +555,17 @@ mod tests {
|
|||||||
public final class FeatureFlagsImpl implements FeatureFlags {
|
public final class FeatureFlagsImpl implements FeatureFlags {
|
||||||
private static boolean aconfig_test_is_cached = false;
|
private static boolean aconfig_test_is_cached = false;
|
||||||
private static boolean other_namespace_is_cached = false;
|
private static boolean other_namespace_is_cached = false;
|
||||||
private static boolean disabledRw = false;
|
|
||||||
private static boolean disabledRwExported = false;
|
private static boolean disabledRwExported = false;
|
||||||
|
private static boolean enabledRoExported = false;
|
||||||
|
|
||||||
|
|
||||||
private void load_overrides_aconfig_test() {
|
private void load_overrides_aconfig_test() {
|
||||||
try {
|
try {
|
||||||
Properties properties = DeviceConfig.getProperties("aconfig_test");
|
Properties properties = DeviceConfig.getProperties("aconfig_test");
|
||||||
disabledRw =
|
|
||||||
properties.getBoolean("com.android.aconfig.test.disabled_rw", false);
|
|
||||||
disabledRwExported =
|
disabledRwExported =
|
||||||
properties.getBoolean("com.android.aconfig.test.disabled_rw_exported", false);
|
properties.getBoolean("com.android.aconfig.test.disabled_rw_exported", false);
|
||||||
|
enabledRoExported =
|
||||||
|
properties.getBoolean("com.android.aconfig.test.enabled_ro_exported", false);
|
||||||
} catch (NullPointerException e) {
|
} catch (NullPointerException e) {
|
||||||
throw new RuntimeException(
|
throw new RuntimeException(
|
||||||
"Cannot read value from namespace aconfig_test "
|
"Cannot read value from namespace aconfig_test "
|
||||||
@@ -574,15 +595,6 @@ mod tests {
|
|||||||
other_namespace_is_cached = true;
|
other_namespace_is_cached = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
@UnsupportedAppUsage
|
|
||||||
public boolean disabledRw() {
|
|
||||||
if (!aconfig_test_is_cached) {
|
|
||||||
load_overrides_aconfig_test();
|
|
||||||
}
|
|
||||||
return disabledRw;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@UnsupportedAppUsage
|
@UnsupportedAppUsage
|
||||||
public boolean disabledRwExported() {
|
public boolean disabledRwExported() {
|
||||||
@@ -591,6 +603,15 @@ mod tests {
|
|||||||
}
|
}
|
||||||
return disabledRwExported;
|
return disabledRwExported;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@UnsupportedAppUsage
|
||||||
|
public boolean enabledRoExported() {
|
||||||
|
if (!aconfig_test_is_cached) {
|
||||||
|
load_overrides_aconfig_test();
|
||||||
|
}
|
||||||
|
return enabledRoExported;
|
||||||
|
}
|
||||||
}"#;
|
}"#;
|
||||||
|
|
||||||
let expect_fake_feature_flags_impl_content = r#"
|
let expect_fake_feature_flags_impl_content = r#"
|
||||||
@@ -606,13 +627,13 @@ mod tests {
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
@UnsupportedAppUsage
|
@UnsupportedAppUsage
|
||||||
public boolean disabledRw() {
|
public boolean disabledRwExported() {
|
||||||
return getValue(Flags.FLAG_DISABLED_RW);
|
return getValue(Flags.FLAG_DISABLED_RW_EXPORTED);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
@UnsupportedAppUsage
|
@UnsupportedAppUsage
|
||||||
public boolean disabledRwExported() {
|
public boolean enabledRoExported() {
|
||||||
return getValue(Flags.FLAG_DISABLED_RW_EXPORTED);
|
return getValue(Flags.FLAG_ENABLED_RO_EXPORTED);
|
||||||
}
|
}
|
||||||
public void setFlag(String flagName, boolean value) {
|
public void setFlag(String flagName, boolean value) {
|
||||||
if (!this.mFlagMap.containsKey(flagName)) {
|
if (!this.mFlagMap.containsKey(flagName)) {
|
||||||
@@ -640,6 +661,7 @@ mod tests {
|
|||||||
Map.entry(Flags.FLAG_DISABLED_RW_IN_OTHER_NAMESPACE, false),
|
Map.entry(Flags.FLAG_DISABLED_RW_IN_OTHER_NAMESPACE, false),
|
||||||
Map.entry(Flags.FLAG_ENABLED_FIXED_RO, false),
|
Map.entry(Flags.FLAG_ENABLED_FIXED_RO, false),
|
||||||
Map.entry(Flags.FLAG_ENABLED_RO, false),
|
Map.entry(Flags.FLAG_ENABLED_RO, false),
|
||||||
|
Map.entry(Flags.FLAG_ENABLED_RO_EXPORTED, false),
|
||||||
Map.entry(Flags.FLAG_ENABLED_RW, false)
|
Map.entry(Flags.FLAG_ENABLED_RW, false)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@@ -739,6 +761,12 @@ mod tests {
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
@UnsupportedAppUsage
|
@UnsupportedAppUsage
|
||||||
|
public boolean enabledRoExported() {
|
||||||
|
throw new UnsupportedOperationException(
|
||||||
|
"Method is not implemented.");
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
@UnsupportedAppUsage
|
||||||
public boolean enabledRw() {
|
public boolean enabledRw() {
|
||||||
throw new UnsupportedOperationException(
|
throw new UnsupportedOperationException(
|
||||||
"Method is not implemented.");
|
"Method is not implemented.");
|
||||||
|
@@ -158,6 +158,11 @@ impl FlagProvider {
|
|||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// query flag enabled_ro_exported
|
||||||
|
pub fn enabled_ro_exported(&self) -> bool {
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
/// query flag enabled_rw
|
/// query flag enabled_rw
|
||||||
pub fn enabled_rw(&self) -> bool {
|
pub fn enabled_rw(&self) -> bool {
|
||||||
*CACHED_enabled_rw
|
*CACHED_enabled_rw
|
||||||
@@ -203,6 +208,12 @@ pub fn enabled_ro() -> bool {
|
|||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// query flag enabled_ro_exported
|
||||||
|
#[inline(always)]
|
||||||
|
pub fn enabled_ro_exported() -> bool {
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
/// query flag enabled_rw
|
/// query flag enabled_rw
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
pub fn enabled_rw() -> bool {
|
pub fn enabled_rw() -> bool {
|
||||||
@@ -303,6 +314,18 @@ impl FlagProvider {
|
|||||||
self.overrides.insert("enabled_ro", val);
|
self.overrides.insert("enabled_ro", val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// query flag enabled_ro_exported
|
||||||
|
pub fn enabled_ro_exported(&self) -> bool {
|
||||||
|
self.overrides.get("enabled_ro_exported").copied().unwrap_or(
|
||||||
|
true
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// set flag enabled_ro_exported
|
||||||
|
pub fn set_enabled_ro_exported(&mut self, val: bool) {
|
||||||
|
self.overrides.insert("enabled_ro_exported", val);
|
||||||
|
}
|
||||||
|
|
||||||
/// query flag enabled_rw
|
/// query flag enabled_rw
|
||||||
pub fn enabled_rw(&self) -> bool {
|
pub fn enabled_rw(&self) -> bool {
|
||||||
self.overrides.get("enabled_rw").copied().unwrap_or(
|
self.overrides.get("enabled_rw").copied().unwrap_or(
|
||||||
@@ -401,6 +424,18 @@ pub fn set_enabled_ro(val: bool) {
|
|||||||
PROVIDER.lock().unwrap().set_enabled_ro(val);
|
PROVIDER.lock().unwrap().set_enabled_ro(val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// query flag enabled_ro_exported
|
||||||
|
#[inline(always)]
|
||||||
|
pub fn enabled_ro_exported() -> bool {
|
||||||
|
PROVIDER.lock().unwrap().enabled_ro_exported()
|
||||||
|
}
|
||||||
|
|
||||||
|
/// set flag enabled_ro_exported
|
||||||
|
#[inline(always)]
|
||||||
|
pub fn set_enabled_ro_exported(val: bool) {
|
||||||
|
PROVIDER.lock().unwrap().set_enabled_ro_exported(val);
|
||||||
|
}
|
||||||
|
|
||||||
/// query flag enabled_rw
|
/// query flag enabled_rw
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
pub fn enabled_rw() -> bool {
|
pub fn enabled_rw() -> bool {
|
||||||
|
@@ -370,7 +370,7 @@ mod tests {
|
|||||||
assert_eq!(ProtoFlagState::ENABLED, enabled_ro.trace[2].state());
|
assert_eq!(ProtoFlagState::ENABLED, enabled_ro.trace[2].state());
|
||||||
assert_eq!(ProtoFlagPermission::READ_ONLY, enabled_ro.trace[2].permission());
|
assert_eq!(ProtoFlagPermission::READ_ONLY, enabled_ro.trace[2].permission());
|
||||||
|
|
||||||
assert_eq!(7, parsed_flags.parsed_flag.len());
|
assert_eq!(8, parsed_flags.parsed_flag.len());
|
||||||
for pf in parsed_flags.parsed_flag.iter() {
|
for pf in parsed_flags.parsed_flag.iter() {
|
||||||
if pf.name() == "enabled_fixed_ro" {
|
if pf.name() == "enabled_fixed_ro" {
|
||||||
continue;
|
continue;
|
||||||
|
@@ -62,7 +62,7 @@ parsed_flag {
|
|||||||
permission: READ_WRITE
|
permission: READ_WRITE
|
||||||
}
|
}
|
||||||
is_fixed_read_only: false
|
is_fixed_read_only: false
|
||||||
is_exported: true
|
is_exported: false
|
||||||
container: "system"
|
container: "system"
|
||||||
metadata {
|
metadata {
|
||||||
purpose: PURPOSE_UNSPECIFIED
|
purpose: PURPOSE_UNSPECIFIED
|
||||||
@@ -72,7 +72,7 @@ parsed_flag {
|
|||||||
package: "com.android.aconfig.test"
|
package: "com.android.aconfig.test"
|
||||||
name: "disabled_rw_exported"
|
name: "disabled_rw_exported"
|
||||||
namespace: "aconfig_test"
|
namespace: "aconfig_test"
|
||||||
description: "This flag is exported"
|
description: "This flag is DISABLED + READ_WRITE and exported"
|
||||||
bug: "111"
|
bug: "111"
|
||||||
state: DISABLED
|
state: DISABLED
|
||||||
permission: READ_WRITE
|
permission: READ_WRITE
|
||||||
@@ -173,6 +173,31 @@ parsed_flag {
|
|||||||
purpose: PURPOSE_BUGFIX
|
purpose: PURPOSE_BUGFIX
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
parsed_flag {
|
||||||
|
package: "com.android.aconfig.test"
|
||||||
|
name: "enabled_ro_exported"
|
||||||
|
namespace: "aconfig_test"
|
||||||
|
description: "This flag is ENABLED + READ_ONLY and exported"
|
||||||
|
bug: "111"
|
||||||
|
state: ENABLED
|
||||||
|
permission: READ_ONLY
|
||||||
|
trace {
|
||||||
|
source: "tests/test.aconfig"
|
||||||
|
state: DISABLED
|
||||||
|
permission: READ_WRITE
|
||||||
|
}
|
||||||
|
trace {
|
||||||
|
source: "tests/first.values"
|
||||||
|
state: ENABLED
|
||||||
|
permission: READ_ONLY
|
||||||
|
}
|
||||||
|
is_fixed_read_only: false
|
||||||
|
is_exported: true
|
||||||
|
container: "system"
|
||||||
|
metadata {
|
||||||
|
purpose: PURPOSE_UNSPECIFIED
|
||||||
|
}
|
||||||
|
}
|
||||||
parsed_flag {
|
parsed_flag {
|
||||||
package: "com.android.aconfig.test"
|
package: "com.android.aconfig.test"
|
||||||
name: "enabled_rw"
|
name: "enabled_rw"
|
||||||
|
@@ -71,14 +71,10 @@ public final class FeatureFlagsImpl implements FeatureFlags \{
|
|||||||
@Override
|
@Override
|
||||||
@UnsupportedAppUsage
|
@UnsupportedAppUsage
|
||||||
public boolean {flag.method_name}() \{
|
public boolean {flag.method_name}() \{
|
||||||
{{ -if flag.is_read_write }}
|
|
||||||
if (!{flag.device_config_namespace}_is_cached) \{
|
if (!{flag.device_config_namespace}_is_cached) \{
|
||||||
load_overrides_{flag.device_config_namespace}();
|
load_overrides_{flag.device_config_namespace}();
|
||||||
}
|
}
|
||||||
return {flag.method_name};
|
return {flag.method_name};
|
||||||
{{ else }}
|
|
||||||
return {flag.default_value};
|
|
||||||
{{ endif- }}
|
|
||||||
}
|
}
|
||||||
{{ endif }}
|
{{ endif }}
|
||||||
|
|
||||||
|
@@ -28,6 +28,12 @@ flag_value {
|
|||||||
state: ENABLED
|
state: ENABLED
|
||||||
permission: READ_ONLY
|
permission: READ_ONLY
|
||||||
}
|
}
|
||||||
|
flag_value {
|
||||||
|
package: "com.android.aconfig.test"
|
||||||
|
name: "enabled_ro_exported"
|
||||||
|
state: ENABLED
|
||||||
|
permission: READ_ONLY
|
||||||
|
}
|
||||||
flag_value {
|
flag_value {
|
||||||
package: "com.android.aconfig.test"
|
package: "com.android.aconfig.test"
|
||||||
name: "disabled_rw_exported"
|
name: "disabled_rw_exported"
|
||||||
|
@@ -43,7 +43,6 @@ flag {
|
|||||||
namespace: "aconfig_test"
|
namespace: "aconfig_test"
|
||||||
description: "This flag is DISABLED + READ_WRITE"
|
description: "This flag is DISABLED + READ_WRITE"
|
||||||
bug: "456"
|
bug: "456"
|
||||||
is_exported: true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# This flag's final value calculated from:
|
# This flag's final value calculated from:
|
||||||
@@ -65,9 +64,17 @@ flag {
|
|||||||
}
|
}
|
||||||
|
|
||||||
flag {
|
flag {
|
||||||
name: "disabled_rw_exported"
|
name: "enabled_ro_exported"
|
||||||
namespace: "aconfig_test"
|
namespace: "aconfig_test"
|
||||||
description: "This flag is exported"
|
description: "This flag is ENABLED + READ_ONLY and exported"
|
||||||
bug: "111"
|
bug: "111"
|
||||||
is_exported: true
|
is_exported: true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
flag {
|
||||||
|
name: "disabled_rw_exported"
|
||||||
|
namespace: "aconfig_test"
|
||||||
|
description: "This flag is DISABLED + READ_WRITE and exported"
|
||||||
|
bug: "111"
|
||||||
|
is_exported: true
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user