Add unit test for shared/unshared interface quotas
Test: as follows
- built
- flashed
- booted
- "runtest -x .../netd_unit_test.cpp" passes
Bug: 28362720
Bug: 38143143
Change-Id: I0b962898f9e3d7e86d5c0d0d01b79b3e3543b5ee
diff --git a/libnetdutils/Syscalls.cpp b/libnetdutils/Syscalls.cpp
index bad8631..00e2422 100644
--- a/libnetdutils/Syscalls.cpp
+++ b/libnetdutils/Syscalls.cpp
@@ -157,7 +157,39 @@
Status close(Fd fd) const override {
auto rv = ::close(fd.get());
if (rv == -1) {
- return statusFromErrno(errno, "close)( failed");
+ return statusFromErrno(errno, "close() failed");
+ }
+ return status::ok;
+ }
+
+ StatusOr<UniqueFile> fopen(const std::string& path, const std::string& mode) const override {
+ UniqueFile file(::fopen(path.c_str(), mode.c_str()));
+ if (file == NULL) {
+ return statusFromErrno(errno, "fopen(\"" + path + "\", \"" + mode + "\") failed");
+ }
+ return file;
+ }
+
+ StatusOr<int> vfprintf(FILE* file, const char* format, va_list ap) const override {
+ auto rv = ::vfprintf(file, format, ap);
+ if (rv == -1) {
+ return statusFromErrno(errno, "vfprintf() failed");
+ }
+ return rv;
+ }
+
+ StatusOr<int> vfscanf(FILE* file, const char* format, va_list ap) const override {
+ auto rv = ::vfscanf(file, format, ap);
+ if (rv == -1) {
+ return statusFromErrno(errno, "vfscanf() failed");
+ }
+ return rv;
+ }
+
+ Status fclose(FILE* file) const override {
+ auto rv = ::fclose(file);
+ if (rv == -1) {
+ return statusFromErrno(errno, "fclose() failed");
}
return status::ok;
}