Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a454c013 authored by Jeffrey Huang's avatar Jeffrey Huang Committed by Automerger Merge Worker
Browse files

Merge "Add test for AStatsSocket_close()" into rvc-dev am: 053ade43

Change-Id: I395e8ad756ee0d3c10fef15cb3c5f963d3790824
parents 200a5b96 053ade43
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -110,7 +110,10 @@ cc_benchmark {

cc_test {
    name: "libstatssocket_test",
    srcs: ["tests/stats_event_test.cpp"],
    srcs: [
        "tests/stats_event_test.cpp",
        "tests/stats_writer_test.cpp",
    ],
    cflags: [
        "-Wall",
        "-Werror",
+1 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@
extern "C" {
#endif  // __CPLUSPLUS
void stats_log_close();
int stats_log_is_closed();
int write_buffer_to_statsd(void* buffer, size_t size, uint32_t atomId);
#ifdef __cplusplus
}
+4 −0
Original line number Diff line number Diff line
@@ -43,6 +43,10 @@ void stats_log_close() {
    statsd_writer_init_unlock();
}

int stats_log_is_closed() {
    return statsdLoggerWrite.isClosed && (*statsdLoggerWrite.isClosed)();
}

int write_buffer_to_statsd(void* buffer, size_t size, uint32_t atomId) {
    int ret = 1;

+9 −0
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ static int statsdOpen();
static void statsdClose();
static int statsdWrite(struct timespec* ts, struct iovec* vec, size_t nr);
static void statsdNoteDrop();
static int statsdIsClosed();

struct android_log_transport_write statsdLoggerWrite = {
        .name = "statsd",
@@ -71,6 +72,7 @@ struct android_log_transport_write statsdLoggerWrite = {
        .close = statsdClose,
        .write = statsdWrite,
        .noteDrop = statsdNoteDrop,
        .isClosed = statsdIsClosed,
};

/* log_init_lock assumed */
@@ -153,6 +155,13 @@ static void statsdNoteDrop(int error, int tag) {
    atomic_exchange_explicit(&atom_tag, tag, memory_order_relaxed);
}

static int statsdIsClosed() {
    if (atomic_load(&statsdLoggerWrite.sock) < 0) {
        return 1;
    }
    return 0;
}

static int statsdWrite(struct timespec* ts, struct iovec* vec, size_t nr) {
    ssize_t ret;
    int sock;
+2 −0
Original line number Diff line number Diff line
@@ -40,6 +40,8 @@ struct android_log_transport_write {
    int (*write)(struct timespec* ts, struct iovec* vec, size_t nr);
    /* note one log drop */
    void (*noteDrop)(int error, int tag);
    /* checks if the socket is closed */
    int (*isClosed)();
};

#endif  // ANDROID_STATS_LOG_STATS_WRITER_H
Loading