Message ID | 20220925113032.1949844-16-bmeng.cn@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | tests/qtest: Enable running qtest on Windows | expand |
On Sun, Sep 25, 2022 at 4:04 PM Bin Meng <bmeng.cn@gmail.com> wrote: > From: Bin Meng <bin.meng@windriver.com> > > This case was written to use hardcoded /tmp directory for temporary > files. Update to use g_file_open_tmp() for a portable implementation. > > Signed-off-by: Bin Meng <bin.meng@windriver.com> > > --- > > Changes in v3: > - Split to a separate patch > > tests/qtest/pflash-cfi02-test.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/tests/qtest/pflash-cfi02-test.c > b/tests/qtest/pflash-cfi02-test.c > index 7fce614b64..55890b7d95 100644 > --- a/tests/qtest/pflash-cfi02-test.c > +++ b/tests/qtest/pflash-cfi02-test.c > @@ -56,7 +56,7 @@ typedef struct { > QTestState *qtest; > } FlashConfig; > > -static char image_path[] = "/tmp/qtest.XXXXXX"; > +static char *image_path; > > /* > * The pflash implementation allows some parameters to be unspecified. We > want > @@ -608,6 +608,7 @@ static void test_cfi_in_autoselect(const void *opaque) > static void cleanup(void *opaque) > { > unlink(image_path); > + g_free(image_path); > } > > /* > @@ -635,16 +636,17 @@ static const FlashConfig configuration[] = { > > int main(int argc, char **argv) > { > - int fd = mkstemp(image_path); > + int fd = g_file_open_tmp("qtest.XXXXXX", &image_path, NULL); > if (fd == -1) { > g_printerr("Failed to create temporary file %s: %s\n", image_path, > strerror(errno)); > You need to update error reporting using GError error argument. > + g_free(image_path); > No, image_path is likely still uninitialized here. The easiest is probably to replace the whole block with a g_assert_no_error(err). exit(EXIT_FAILURE); > } > if (ftruncate(fd, UNIFORM_FLASH_SIZE) < 0) { > int error_code = errno; > close(fd); > - unlink(image_path); > + cleanup(NULL); > g_printerr("Failed to truncate file %s to %u MB: %s\n", > image_path, > UNIFORM_FLASH_SIZE, strerror(error_code)); > exit(EXIT_FAILURE); > -- > 2.34.1 > > >
diff --git a/tests/qtest/pflash-cfi02-test.c b/tests/qtest/pflash-cfi02-test.c index 7fce614b64..55890b7d95 100644 --- a/tests/qtest/pflash-cfi02-test.c +++ b/tests/qtest/pflash-cfi02-test.c @@ -56,7 +56,7 @@ typedef struct { QTestState *qtest; } FlashConfig; -static char image_path[] = "/tmp/qtest.XXXXXX"; +static char *image_path; /* * The pflash implementation allows some parameters to be unspecified. We want @@ -608,6 +608,7 @@ static void test_cfi_in_autoselect(const void *opaque) static void cleanup(void *opaque) { unlink(image_path); + g_free(image_path); } /* @@ -635,16 +636,17 @@ static const FlashConfig configuration[] = { int main(int argc, char **argv) { - int fd = mkstemp(image_path); + int fd = g_file_open_tmp("qtest.XXXXXX", &image_path, NULL); if (fd == -1) { g_printerr("Failed to create temporary file %s: %s\n", image_path, strerror(errno)); + g_free(image_path); exit(EXIT_FAILURE); } if (ftruncate(fd, UNIFORM_FLASH_SIZE) < 0) { int error_code = errno; close(fd); - unlink(image_path); + cleanup(NULL); g_printerr("Failed to truncate file %s to %u MB: %s\n", image_path, UNIFORM_FLASH_SIZE, strerror(error_code)); exit(EXIT_FAILURE);