Add host_supported to VHAL libs.
We need to build a FakeVehicleHardware impl on host, thus we need to add the host_supported option. Test: Local build on host. Bug: 328316981 Change-Id: Ia21d26640c465846423cab1a0ff8a283c798b92a
This commit is contained in:
parent
6c4bc494ee
commit
9d3513882a
16 changed files with 48 additions and 26 deletions
|
@ -60,5 +60,5 @@ aidl_interface {
|
|||
},
|
||||
|
||||
],
|
||||
|
||||
host_supported: true,
|
||||
}
|
||||
|
|
|
@ -24,4 +24,5 @@ cc_library_headers {
|
|||
local_include_dirs: ["."],
|
||||
export_include_dirs: ["."],
|
||||
defaults: ["VehicleHalInterfaceDefaults"],
|
||||
host_supported: true,
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@ cc_library_headers {
|
|||
local_include_dirs: ["."],
|
||||
export_include_dirs: ["."],
|
||||
defaults: ["VehicleHalInterfaceDefaults"],
|
||||
host_supported: true,
|
||||
}
|
||||
|
||||
cc_library_headers {
|
||||
|
@ -32,4 +33,5 @@ cc_library_headers {
|
|||
local_include_dirs: ["."],
|
||||
export_include_dirs: ["."],
|
||||
defaults: ["VehicleHalInterfaceDefaults"],
|
||||
host_supported: true,
|
||||
}
|
||||
|
|
|
@ -49,6 +49,7 @@ cc_library {
|
|||
],
|
||||
cflags: ["-DENABLE_VEHICLE_HAL_TEST_PROPERTIES"],
|
||||
shared_libs: ["libjsoncpp"],
|
||||
host_supported: true,
|
||||
}
|
||||
|
||||
cc_library_headers {
|
||||
|
|
|
@ -32,4 +32,5 @@ cc_library {
|
|||
shared_libs: [
|
||||
"libjsoncpp",
|
||||
],
|
||||
host_supported: true,
|
||||
}
|
||||
|
|
|
@ -37,6 +37,7 @@ cc_library {
|
|||
whole_static_libs: [
|
||||
"wakeup_client_protos",
|
||||
],
|
||||
host_supported: true,
|
||||
}
|
||||
|
||||
cc_defaults {
|
||||
|
|
|
@ -206,7 +206,7 @@ class FakeVehicleHardware : public IVehicleHardware {
|
|||
EXCLUDES(mLock);
|
||||
// Load the config files in format '*.json' from the directory and parse the config files
|
||||
// into a map from property ID to ConfigDeclarations.
|
||||
void loadPropConfigsFromDir(const std::string& dirPath,
|
||||
bool loadPropConfigsFromDir(const std::string& dirPath,
|
||||
std::unordered_map<int32_t, ConfigDeclaration>* configs);
|
||||
// Function to be called when a value change event comes from vehicle bus. In our fake
|
||||
// implementation, this function is only called during "--inject-event" dump command.
|
||||
|
|
|
@ -363,7 +363,12 @@ bool FakeVehicleHardware::UseOverrideConfigDir() {
|
|||
|
||||
std::unordered_map<int32_t, ConfigDeclaration> FakeVehicleHardware::loadConfigDeclarations() {
|
||||
std::unordered_map<int32_t, ConfigDeclaration> configsByPropId;
|
||||
loadPropConfigsFromDir(mDefaultConfigDir, &configsByPropId);
|
||||
bool defaultConfigLoaded = loadPropConfigsFromDir(mDefaultConfigDir, &configsByPropId);
|
||||
if (!defaultConfigLoaded) {
|
||||
// This cannot work without a valid default config.
|
||||
ALOGE("Failed to load default config, exiting");
|
||||
exit(1);
|
||||
}
|
||||
if (UseOverrideConfigDir()) {
|
||||
loadPropConfigsFromDir(mOverrideConfigDir, &configsByPropId);
|
||||
}
|
||||
|
@ -2378,30 +2383,35 @@ void FakeVehicleHardware::onValuesChangeCallback(std::vector<VehiclePropValue> v
|
|||
(*mOnPropertyChangeCallback)(std::move(subscribedUpdatedValues));
|
||||
}
|
||||
|
||||
void FakeVehicleHardware::loadPropConfigsFromDir(
|
||||
bool FakeVehicleHardware::loadPropConfigsFromDir(
|
||||
const std::string& dirPath,
|
||||
std::unordered_map<int32_t, ConfigDeclaration>* configsByPropId) {
|
||||
ALOGI("loading properties from %s", dirPath.c_str());
|
||||
if (auto dir = opendir(dirPath.c_str()); dir != NULL) {
|
||||
std::regex regJson(".*[.]json", std::regex::icase);
|
||||
while (auto f = readdir(dir)) {
|
||||
if (!std::regex_match(f->d_name, regJson)) {
|
||||
continue;
|
||||
}
|
||||
std::string filePath = dirPath + "/" + std::string(f->d_name);
|
||||
ALOGI("loading properties from %s", filePath.c_str());
|
||||
auto result = mLoader.loadPropConfig(filePath);
|
||||
if (!result.ok()) {
|
||||
ALOGE("failed to load config file: %s, error: %s", filePath.c_str(),
|
||||
result.error().message().c_str());
|
||||
continue;
|
||||
}
|
||||
for (auto& [propId, configDeclaration] : result.value()) {
|
||||
(*configsByPropId)[propId] = std::move(configDeclaration);
|
||||
}
|
||||
}
|
||||
closedir(dir);
|
||||
auto dir = opendir(dirPath.c_str());
|
||||
if (dir == nullptr) {
|
||||
ALOGE("Failed to open config directory: %s", dirPath.c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
std::regex regJson(".*[.]json", std::regex::icase);
|
||||
while (auto f = readdir(dir)) {
|
||||
if (!std::regex_match(f->d_name, regJson)) {
|
||||
continue;
|
||||
}
|
||||
std::string filePath = dirPath + "/" + std::string(f->d_name);
|
||||
ALOGI("loading properties from %s", filePath.c_str());
|
||||
auto result = mLoader.loadPropConfig(filePath);
|
||||
if (!result.ok()) {
|
||||
ALOGE("failed to load config file: %s, error: %s", filePath.c_str(),
|
||||
result.error().message().c_str());
|
||||
continue;
|
||||
}
|
||||
for (auto& [propId, configDeclaration] : result.value()) {
|
||||
(*configsByPropId)[propId] = std::move(configDeclaration);
|
||||
}
|
||||
}
|
||||
closedir(dir);
|
||||
return true;
|
||||
}
|
||||
|
||||
Result<float> FakeVehicleHardware::safelyParseFloat(int index, const std::string& s) {
|
||||
|
|
|
@ -29,4 +29,5 @@ cc_library {
|
|||
"VehicleHalUtils",
|
||||
],
|
||||
export_static_lib_headers: ["VehicleHalUtils"],
|
||||
host_supported: true,
|
||||
}
|
||||
|
|
|
@ -29,4 +29,5 @@ cc_library {
|
|||
"VehicleHalUtils",
|
||||
],
|
||||
export_static_lib_headers: ["VehicleHalUtils"],
|
||||
host_supported: true,
|
||||
}
|
||||
|
|
|
@ -127,4 +127,5 @@ cc_library_static {
|
|||
cflags: [
|
||||
"-Wno-unused-parameter",
|
||||
],
|
||||
host_supported: true,
|
||||
}
|
||||
|
|
|
@ -39,6 +39,7 @@ cc_library {
|
|||
],
|
||||
defaults: ["VehicleHalDefaults"],
|
||||
export_static_lib_headers: ["VehicleHalUtils"],
|
||||
host_supported: true,
|
||||
}
|
||||
|
||||
cc_test {
|
||||
|
|
|
@ -30,4 +30,5 @@ cc_library_headers {
|
|||
export_header_lib_headers: [
|
||||
"VehicleHalUtilHeaders",
|
||||
],
|
||||
host_supported: true,
|
||||
}
|
||||
|
|
|
@ -25,10 +25,12 @@ cc_library {
|
|||
local_include_dirs: ["include"],
|
||||
export_include_dirs: ["include"],
|
||||
defaults: ["VehicleHalDefaults"],
|
||||
host_supported: true,
|
||||
}
|
||||
|
||||
cc_library_headers {
|
||||
name: "VehicleHalUtilHeaders",
|
||||
export_include_dirs: ["include"],
|
||||
vendor: true,
|
||||
host_supported: true,
|
||||
}
|
||||
|
|
|
@ -172,9 +172,7 @@ VhalResult<void> VehiclePropertyStore::writeValue(VehiclePropValuePool::Recyclab
|
|||
}
|
||||
|
||||
if (onValuesChangeCallback == nullptr && onValueChangeCallback == nullptr) {
|
||||
ALOGW("No callback registered, ignoring property update for propId: %" PRId32
|
||||
", area ID: %" PRId32,
|
||||
propId, areaId);
|
||||
// No callback registered.
|
||||
return {};
|
||||
}
|
||||
|
||||
|
|
|
@ -61,6 +61,7 @@ aidl_interface {
|
|||
},
|
||||
|
||||
],
|
||||
host_supported: true,
|
||||
}
|
||||
|
||||
filegroup {
|
||||
|
|
Loading…
Reference in a new issue