[02/13] tests/pflash-cfi02: Use the GLib API
diff mbox series

Message ID 20190505221544.31568-3-philmd@redhat.com
State New
Headers show
Series
  • hw/block/pflash_cfi02: Clean-up and fixes
Related show

Commit Message

Philippe Mathieu-Daudé May 5, 2019, 10:15 p.m. UTC
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 tests/pflash-cfi02-test.c | 28 +++++++++++++---------------
 1 file changed, 13 insertions(+), 15 deletions(-)

Patch
diff mbox series

diff --git a/tests/pflash-cfi02-test.c b/tests/pflash-cfi02-test.c
index 40af1bb523e..ff775618c02 100644
--- a/tests/pflash-cfi02-test.c
+++ b/tests/pflash-cfi02-test.c
@@ -35,8 +35,6 @@ 
 #define UNLOCK_BYPASS_CMD 0x20
 #define UNLOCK_BYPASS_RESET_CMD 0x00
 
-static char image_path[] = "/tmp/qtest.XXXXXX";
-
 static inline void flash_write(uint64_t byte_addr, uint16_t data)
 {
     qtest_writew(global_qtest, BASE_ADDR + byte_addr, data);
@@ -103,8 +101,9 @@  static void chip_erase(void)
     flash_write(UNLOCK0_ADDR, SECTOR_ERASE_CMD);
 }
 
-static void test_flash(void)
+static void test_flash(const void *opaque)
 {
+    const char *image_path = opaque;
     global_qtest = qtest_initf("-M musicpal,accel=qtest "
                                "-drive if=pflash,file=%s,format=raw,copy-on-read",
                                image_path);
@@ -195,31 +194,30 @@  static void test_flash(void)
 
 static void cleanup(void *opaque)
 {
+    char *image_path = opaque;
     unlink(image_path);
+    g_free(image_path);
 }
 
 int main(int argc, char **argv)
 {
-    int fd = mkstemp(image_path);
-    if (fd == -1) {
-        g_printerr("Failed to create temporary file %s: %s\n", image_path,
-                   strerror(errno));
-        exit(EXIT_FAILURE);
-    }
+    GError *error = NULL;
+    char *image_path;
+    int fd = g_file_open_tmp("pflash-cfi02-XXXXXX.raw", &image_path, &error);
+    g_assert_no_error(error);
     if (ftruncate(fd, 8 * 1024 * 1024) < 0) {
-        int error_code = errno;
+        g_printerr("Failed to truncate file %s to 8 MB: %s\n", image_path,
+                   strerror(errno));
         close(fd);
         unlink(image_path);
-        g_printerr("Failed to truncate file %s to 8 MB: %s\n", image_path,
-                   strerror(error_code));
         exit(EXIT_FAILURE);
     }
     close(fd);
 
-    qtest_add_abrt_handler(cleanup, NULL);
+    qtest_add_abrt_handler(cleanup, image_path);
     g_test_init(&argc, &argv, NULL);
-    qtest_add_func("pflash-cfi02", test_flash);
+    qtest_add_data_func("pflash-cfi02", image_path, test_flash);
     int result = g_test_run();
-    cleanup(NULL);
+    cleanup(image_path);
     return result;
 }