Am 05.09.20 um 23:10 schrieb Yonggang Luo:
> On Windows there is no path like /tmp/s_local_disk.XXXXXX
>
> Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> ---
> tests/test-replication.c | 13 +++++++++----
> 1 file changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/tests/test-replication.c b/tests/test-replication.c
> index 9ab3666a90..3cf544a133 100644
> --- a/tests/test-replication.c
> +++ b/tests/test-replication.c
> @@ -23,14 +23,14 @@
>
> /* primary */
> #define P_ID "primary-id"
> -static char p_local_disk[] = "/tmp/p_local_disk.XXXXXX";
> +static char p_local_disk[PATH_MAX];
>
> /* secondary */
> #define S_ID "secondary-id"
> #define S_LOCAL_DISK_ID "secondary-local-disk-id"
> -static char s_local_disk[] = "/tmp/s_local_disk.XXXXXX";
> -static char s_active_disk[] = "/tmp/s_active_disk.XXXXXX";
> -static char s_hidden_disk[] = "/tmp/s_hidden_disk.XXXXXX";
> +static char s_local_disk[PATH_MAX];
> +static char s_active_disk[PATH_MAX];
> +static char s_hidden_disk[PATH_MAX];
>
> /* FIXME: steal from blockdev.c */
> QemuOptsList qemu_drive_opts = {
> @@ -571,6 +571,11 @@ static void setup_sigabrt_handler(void)
> int main(int argc, char **argv)
> {
> int ret;
> + const char *tmpdir = g_get_tmp_dir();
> + sprintf(p_local_disk, "%s/p_local_disk.XXXXXX", tmpdir);
> + sprintf(s_local_disk, "%s/s_local_disk.XXXXXX", tmpdir);
> + sprintf(s_active_disk, "%s/s_active_disk.XXXXXX", tmpdir);
> + sprintf(s_hidden_disk, "%s/s_hidden_disk.XXXXXX", tmpdir);
> qemu_init_main_loop(&error_fatal);
> bdrv_init();
>
Maybe it is possible to use get_tmp_filename() (which could be
simplified by using g_get_tmp_dir).
What does get_tmp_filename mean? I didn't understand
And please use snprintf instead of sprintf. I am afraid that a path can
be longer than PATH_MAX, even if the tmpdir path is normally rather short.
OK, I'll use
snprintf
You could also allocate the different filenames dynamically instead of
limiting them to PATH_MAX characters.
as a test, it's too complicated,
Regards
Stefan Weil