summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Buynytskyy <alexbuy@google.com>2021-05-06 16:08:06 -0700
committerAlex Buynytskyy <alexbuy@google.com>2021-05-06 22:41:10 -0700
commit566de22c055afc72cf5796945645586b6c693995 (patch)
tree824dc809913cc588daaafc4b96702ace38121fde
parent216c6f3bd6e510280fbc8e840eecaab51e26d229 (diff)
downloadincremental_delivery-566de22c055afc72cf5796945645586b6c693995.tar.gz
Better debug logging.
Bug: 187241618 Test: atest IncrementalInstallTest Change-Id: If8c6d8aa09f859c0d1019ce3f3096907b449ee07
-rw-r--r--incfs/include/incfs.h4
-rw-r--r--incfs/include/path.h (renamed from incfs/path.h)39
-rw-r--r--incfs/path.cpp35
-rw-r--r--libdataloader/Android.bp4
-rw-r--r--libdataloader/DataLoaderConnector.cpp23
5 files changed, 59 insertions, 46 deletions
diff --git a/incfs/include/incfs.h b/incfs/include/incfs.h
index 781a897..76619c2 100644
--- a/incfs/include/incfs.h
+++ b/incfs/include/incfs.h
@@ -101,9 +101,11 @@ public:
IncFsFd pendingReads() const;
IncFsFd logs() const;
IncFsFd blocksWritten() const;
- operator IncFsControl*() const { return mControl; };
+
void close();
+ operator IncFsControl*() const { return mControl; }
+
using Fds = std::array<UniqueFd, IncFsFdType::FDS_COUNT>;
[[nodiscard]] Fds releaseFds();
diff --git a/incfs/path.h b/incfs/include/path.h
index ab1c9bb..325eb1d 100644
--- a/incfs/path.h
+++ b/incfs/include/path.h
@@ -48,8 +48,43 @@ std::string_view relativize(std::string&& parent, std::string_view nested) = del
std::string_view relativize(std::string_view parent, std::string&& nested) = delete;
// Note: some system headers #define 'dirname' and 'basename' as macros
-std::string_view dirName(std::string_view path);
-std::string_view baseName(std::string_view path);
+
+inline std::string_view baseName(std::string_view path) {
+ using namespace std::literals;
+ if (path.empty()) {
+ return {};
+ }
+ if (path == "/"sv) {
+ return "/"sv;
+ }
+ auto pos = path.rfind('/');
+ while (!path.empty() && pos == path.size() - 1) {
+ path.remove_suffix(1);
+ pos = path.rfind('/');
+ }
+ if (pos == path.npos) {
+ return path.empty() ? "/"sv : path;
+ }
+ return path.substr(pos + 1);
+}
+
+inline std::string_view dirName(std::string_view path) {
+ using namespace std::literals;
+ if (path.empty()) {
+ return {};
+ }
+ if (path == "/"sv) {
+ return "/"sv;
+ }
+ const auto pos = path.rfind('/');
+ if (pos == 0) {
+ return "/"sv;
+ }
+ if (pos == path.npos) {
+ return "."sv;
+ }
+ return path.substr(0, pos);
+}
// Split the |full| path into its directory and basename components.
// This modifies the input string to null-terminate the output directory
diff --git a/incfs/path.cpp b/incfs/path.cpp
index 502f2fc..f6f87ae 100644
--- a/incfs/path.cpp
+++ b/incfs/path.cpp
@@ -185,41 +185,6 @@ void details::appendNextPath(std::string& res, std::string_view path) {
res += path;
}
-std::string_view baseName(std::string_view path) {
- if (path.empty()) {
- return {};
- }
- if (path == "/"sv) {
- return "/"sv;
- }
- auto pos = path.rfind('/');
- while (!path.empty() && pos == path.size() - 1) {
- path.remove_suffix(1);
- pos = path.rfind('/');
- }
- if (pos == path.npos) {
- return path.empty() ? "/"sv : path;
- }
- return path.substr(pos + 1);
-}
-
-std::string_view dirName(std::string_view path) {
- if (path.empty()) {
- return {};
- }
- if (path == "/"sv) {
- return "/"sv;
- }
- const auto pos = path.rfind('/');
- if (pos == 0) {
- return "/"sv;
- }
- if (pos == path.npos) {
- return "."sv;
- }
- return path.substr(0, pos);
-}
-
std::pair<std::string_view, std::string_view> splitDirBase(std::string& full) {
auto res = std::pair(dirName(full), baseName(full));
if (res.first.data() == full.data()) {
diff --git a/libdataloader/Android.bp b/libdataloader/Android.bp
index 7bd2696..eb9adf4 100644
--- a/libdataloader/Android.bp
+++ b/libdataloader/Android.bp
@@ -44,7 +44,9 @@ cc_defaults {
"liblog",
"libutils",
],
- static_libs: ["libnativehelper_lazy"],
+ static_libs: [
+ "libnativehelper_lazy",
+ ],
tidy: true,
tidy_checks: [
"android-*",
diff --git a/libdataloader/DataLoaderConnector.cpp b/libdataloader/DataLoaderConnector.cpp
index 24ec7dc..d58bbb3 100644
--- a/libdataloader/DataLoaderConnector.cpp
+++ b/libdataloader/DataLoaderConnector.cpp
@@ -30,6 +30,7 @@
#include "ManagedDataLoader.h"
#include "dataloader.h"
#include "incfs.h"
+#include "path.h"
namespace {
@@ -757,15 +758,23 @@ bool DataLoaderService_OnCreate(JNIEnv* env, jobject service, jint storageId, jo
}
}
auto nativeControl = createIncFsControlFromManaged(env, control);
- ALOGI("DataLoader::create1 cmd: %d|%s", nativeControl.cmd(),
- pathFromFd(nativeControl.cmd()).c_str());
- ALOGI("DataLoader::create1 pendingReads: %d|%s", nativeControl.pendingReads(),
- pathFromFd(nativeControl.pendingReads()).c_str());
- ALOGI("DataLoader::create1 log: %d|%s", nativeControl.logs(),
- pathFromFd(nativeControl.logs()).c_str());
+ if (nativeControl) {
+ using namespace android::incfs;
+ ALOGI("DataLoader::create incremental fds: %d/%d/%d/%d", nativeControl.cmd(),
+ nativeControl.pendingReads(), nativeControl.logs(), nativeControl.blocksWritten());
+ auto cmdPath = pathFromFd(nativeControl.cmd());
+ auto dir = path::dirName(cmdPath);
+ ALOGI("DataLoader::create incremental dir: %s, files: %s/%s/%s/%s",
+ details::c_str(dir).get(), details::c_str(path::baseName(cmdPath)).get(),
+ details::c_str(path::baseName(pathFromFd(nativeControl.pendingReads()))).get(),
+ details::c_str(path::baseName(pathFromFd(nativeControl.logs()))).get(),
+ details::c_str(path::baseName(pathFromFd(nativeControl.blocksWritten()))).get());
+ } else {
+ ALOGI("DataLoader::create no incremental control");
+ }
auto nativeParams = DataLoaderParamsPair::createFromManaged(env, params);
- ALOGI("DataLoader::create2: %d|%s|%s|%s", nativeParams.dataLoaderParams().type(),
+ ALOGI("DataLoader::create params: %d|%s|%s|%s", nativeParams.dataLoaderParams().type(),
nativeParams.dataLoaderParams().packageName().c_str(),
nativeParams.dataLoaderParams().className().c_str(),
nativeParams.dataLoaderParams().arguments().c_str());