Add a singleton CacheLocation to replace the hard coded locations
This class allows us to set the following locations dynamically:
cache_temp_source, last_command_file, stash_directory_base.
In the updater's main function, we reset the values of these variables
to their default locations in /cache; while we can set them to temp
files in unit tests or host simulation.
Test: unit tests pass
Change-Id: I528652650caa41373617ab055d41b1f1a4ec0f87
diff --git a/updater/updater.cpp b/updater/updater.cpp
index f55a0d3..f063e5f 100644
--- a/updater/updater.cpp
+++ b/updater/updater.cpp
@@ -34,6 +34,7 @@
#include "otafault/config.h"
#include "otautil/DirUtil.h"
#include "otautil/SysUtil.h"
+#include "otautil/cache_location.h"
#include "otautil/error_code.h"
#include "updater/blockimg.h"
#include "updater/install.h"
@@ -168,6 +169,10 @@
}
ota_io_init(za, state.is_retry);
+ // Initialize the cache_temp_source, last_command_file and stash_directory_base to their default
+ // locations.
+ CacheLocation::location().ResetLocations();
+
std::string result;
bool status = Evaluate(&state, root, &result);