[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 23/39] tests/unit: Do not reference QemuLogFile directly
From: |
Richard Henderson |
Subject: |
[PATCH v2 23/39] tests/unit: Do not reference QemuLogFile directly |
Date: |
Sat, 26 Mar 2022 07:25:18 -0600 |
Use qemu_log_lock/unlock instead of the raw rcu_read.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
tests/unit/test-logging.c | 33 +++++++++++++++------------------
1 file changed, 15 insertions(+), 18 deletions(-)
diff --git a/tests/unit/test-logging.c b/tests/unit/test-logging.c
index 54d7e8e33b..dcb8ac70df 100644
--- a/tests/unit/test-logging.c
+++ b/tests/unit/test-logging.c
@@ -110,12 +110,10 @@ static void test_parse_path(gconstpointer data)
static void test_logfile_write(gconstpointer data)
{
- QemuLogFile *logfile;
- QemuLogFile *logfile2;
+ FILE *logfile0, *logfile1;
gchar const *dir = data;
- g_autofree gchar *file_path = NULL;
+ g_autofree gchar *file_path0 = NULL;
g_autofree gchar *file_path1 = NULL;
- FILE *orig_fd;
/*
* Before starting test, set log flags, to ensure the file gets
@@ -124,29 +122,28 @@ static void test_logfile_write(gconstpointer data)
* this is needed.
*/
qemu_set_log(CPU_LOG_TB_OUT_ASM, &error_abort);
- file_path = g_build_filename(dir, "qemu_test_log_write0.log", NULL);
+ file_path0 = g_build_filename(dir, "qemu_test_log_write0.log", NULL);
file_path1 = g_build_filename(dir, "qemu_test_log_write1.log", NULL);
/*
* Test that even if an open file handle is changed,
* our handle remains valid due to RCU.
*/
- qemu_set_log_filename(file_path, &error_abort);
- rcu_read_lock();
- logfile = qatomic_rcu_read(&qemu_logfile);
- orig_fd = logfile->fd;
- g_assert(logfile && logfile->fd);
- fprintf(logfile->fd, "%s 1st write to file\n", __func__);
- fflush(logfile->fd);
+ qemu_set_log_filename(file_path0, &error_abort);
+ logfile0 = qemu_log_trylock();
+ g_assert(logfile0);
+ fprintf(logfile0, "%s 1st write to file\n", __func__);
+ fflush(logfile0);
/* Change the logfile and ensure that the handle is still valid. */
qemu_set_log_filename(file_path1, &error_abort);
- logfile2 = qatomic_rcu_read(&qemu_logfile);
- g_assert(logfile->fd == orig_fd);
- g_assert(logfile2->fd != logfile->fd);
- fprintf(logfile->fd, "%s 2nd write to file\n", __func__);
- fflush(logfile->fd);
- rcu_read_unlock();
+ logfile1 = qemu_log_trylock();
+ g_assert(logfile1);
+ g_assert(logfile0 != logfile1);
+ fprintf(logfile0, "%s 2nd write to file\n", __func__);
+ fflush(logfile0);
+ qemu_log_unlock(logfile0);
+ qemu_log_unlock(logfile1);
}
static void test_logfile_lock(gconstpointer data)
--
2.25.1
- [PATCH v2 20/39] util/log: Drop call to setvbuf, (continued)
- [PATCH v2 20/39] util/log: Drop call to setvbuf, Richard Henderson, 2022/03/26
- [PATCH v2 26/39] sysemu/os-win32: Test for and use _lock_file/_unlock_file, Richard Henderson, 2022/03/26
- [PATCH v2 28/39] bsd-user: Use qemu_set_log_filename_flags, Richard Henderson, 2022/03/26
- [PATCH v2 14/39] accel/tcg: Use cpu_dump_state between qemu_log_trylock/unlock, Richard Henderson, 2022/03/26
- [PATCH v2 31/39] util/log: Remove qemu_log_close, Richard Henderson, 2022/03/26
- [PATCH v2 30/39] softmmu: Use qemu_set_log_filename_flags, Richard Henderson, 2022/03/26
- [PATCH v2 29/39] linux-user: Use qemu_set_log_filename_flags, Richard Henderson, 2022/03/26
- [PATCH v2 18/39] util/log: Mark qemu_log_trylock as G_GNUC_WARN_UNUSED_RESULT, Richard Henderson, 2022/03/26
- [PATCH v2 17/39] util/log: Drop return value from qemu_log, Richard Henderson, 2022/03/26
- [PATCH v2 21/39] bsd-user: Expand log_page_dump inline, Richard Henderson, 2022/03/26
- [PATCH v2 23/39] tests/unit: Do not reference QemuLogFile directly,
Richard Henderson <=
- [PATCH v2 22/39] linux-user: Expand log_page_dump inline, Richard Henderson, 2022/03/26
- [PATCH v2 27/39] util/log: Introduce qemu_set_log_filename_flags, Richard Henderson, 2022/03/26
- [PATCH v2 33/39] util/log: Rename qemu_logfile to global_file, Richard Henderson, 2022/03/26
- [PATCH v2 34/39] util/log: Rename qemu_logfile_mutex to global_mutex, Richard Henderson, 2022/03/26
- [PATCH v2 32/39] util/log: Rename logfilename to global_filename, Richard Henderson, 2022/03/26
- [PATCH v2 36/39] util/log: Combine two logfile closes, Richard Henderson, 2022/03/26
- [PATCH v2 35/39] util/log: Hoist the eval of is_daemonized in qemu_set_log_internal, Richard Henderson, 2022/03/26
- [PATCH v2 37/39] util/log: Rename QemuLogFile to RCUCloseFILE, Richard Henderson, 2022/03/26
- [PATCH v2 38/39] util/log: Limit RCUCloseFILE to file closing, Richard Henderson, 2022/03/26
- [PATCH v2 39/39] util/log: Support per-thread log files, Richard Henderson, 2022/03/26