79283ef377
unit tests 1, Previous implementation has the staged prop application done in property_service, which caused a number of unnecessary changes which including exposing apis like AddPersistentProperty. In addition, it made the property_service logic complicated. A better design is to have the staged value application done while reading the persistent properties from file. This way, no change to property service. In addition, unit test is much cleaner and efficient. 2, add a unit test to lock down the behavior. Specifically, it locks down that when a prop is staged, it should be applied the next time when the persistent prop is loaded. In addition, it should lock down that other persistent props are not overwritten. Bug: b/307752841, b/300111812, b/306062513 Change-Id: I43c603efbb803195065dda3f0bc2145716302bbc
40 lines
1.3 KiB
C++
40 lines
1.3 KiB
C++
/*
|
|
* Copyright (C) 2017 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#ifndef _INIT_PERSISTENT_PROPERTIES_H
|
|
#define _INIT_PERSISTENT_PROPERTIES_H
|
|
|
|
#include <string>
|
|
|
|
#include "result.h"
|
|
#include "system/core/init/persistent_properties.pb.h"
|
|
|
|
namespace android {
|
|
namespace init {
|
|
|
|
PersistentProperties LoadPersistentProperties();
|
|
void WritePersistentProperty(const std::string& name, const std::string& value);
|
|
PersistentProperties LoadPersistentPropertiesFromMemory();
|
|
|
|
// Exposed only for testing
|
|
Result<PersistentProperties> LoadPersistentPropertyFile();
|
|
Result<void> WritePersistentPropertyFile(const PersistentProperties& persistent_properties);
|
|
extern std::string persistent_property_filename;
|
|
|
|
} // namespace init
|
|
} // namespace android
|
|
|
|
#endif
|