sys_prop: add a flag to enable large sys prop node only for internal
builds
Use a soong config var to control if we should use a large sys prop node
size. Node in prop_area.cpp, the PA_SIZE is controlled by a macro flag.
This macro flag is passed in as a compiler flag which is then added when
the soong configure variable (large_system_property_node) is true.
The sooong configure variable is then backed by a build system flag
defined in build/release/build_flags.scl. The value of this flag is then
determined by different release configurations. Only internal build
release configuration would set this flag to true.
Bug: b/316932568
Change-Id: Ibe2ffda9155246f2217aaa0e7d589ed7effec311
diff --git a/tests/Android.bp b/tests/Android.bp
index a53418a..1a0dec3 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -371,7 +371,10 @@
cc_test_library {
name: "libBionicStandardTests",
- defaults: ["bionic_tests_defaults"],
+ defaults: [
+ "bionic_tests_defaults",
+ "large_system_property_node_defaults",
+ ],
tidy_disabled_srcs: [
"malloc_test.cpp", // timed out with clang-tidy, and too many warnings
],
diff --git a/tests/system_properties_test.cpp b/tests/system_properties_test.cpp
index 0b7f5ae..f11f509 100644
--- a/tests/system_properties_test.cpp
+++ b/tests/system_properties_test.cpp
@@ -593,7 +593,13 @@
ASSERT_TRUE(system_properties.valid());
auto name = "ro.super_long_property"s;
+
+#ifdef LARGE_SYSTEM_PROPERTY_NODE
+ auto value = std::string(1024 * 1024 + 1, 'x');
+#else
auto value = std::string(128 * 1024 + 1, 'x');
+#endif
+
ASSERT_NE(0, system_properties.Add(name.c_str(), name.size(), value.c_str(), value.size()));
#else // __BIONIC__