Message ID | 20200905211038.904-2-luoyonggang@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Try fixes test-replication.c running on msys2/mingw | expand |
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). 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. You could also allocate the different filenames dynamically instead of limiting them to PATH_MAX characters. Regards Stefan Weil
On Sun, Sep 6, 2020 at 5:49 AM Stefan Weil <sw@weilnetz.de> wrote: > 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 > > >
On Sun, Sep 06, 2020 at 08:13:19PM +0800, 罗勇刚(Yonggang Luo) wrote: > On Sun, Sep 6, 2020 at 5:49 AM Stefan Weil <sw@weilnetz.de> wrote: > > > 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, I really isn't hard to replace sprintf() with g_strdup_printf() and then g_free() at the end of the test. Regards, Daniel
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();
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(-)