Hi On Mon, Dec 4, 2023 at 9:01 PM Andrey Drobyshev <andrey.drobys...@virtuozzo.com> wrote: > > On 12/4/23 18:51, Marc-André Lureau wrote: > > Hi > > > > On Mon, Dec 4, 2023 at 8:33 PM Andrey Drobyshev > > <andrey.drobys...@virtuozzo.com> wrote: > >> > >> Since the commit a85d09269b QGA_OS_RELEASE variable points to the path > >> relative to the build dir. Then on qemu-ga startup this path can't be > >> found as qemu-ga cwd is somewhere else, which leads to the test failure: > >> > >> # ./tests/unit/test-qga -p /qga/guest-get-osinfo > >> # random seed: R02S3a90c22d77ff1070fbd844f4959cf4a4 > >> # Start of qga tests > >> ** > >> ERROR:../tests/unit/test-qga.c:906:test_qga_guest_get_osinfo: 'str' > >> should not be NULL > >> Bail out! ERROR:../tests/unit/test-qga.c:906:test_qga_guest_get_osinfo: > >> 'str' should not be NULL > >> > >> Let's obtain the absolute path again. > > > > Can you detail how the build and the test is done? > > > > Simple as: > > > ./configure --cc=gcc --target-list=x86_64-softmmu --enable-guest-agent && > > make -j16 > > cd build; tests/unit/test-qga -p /qga/guest-get-osinfo > > > > If I recall correctly, this change was done in order to move qga to a > > subproject(), but isn't strictly required at this point. Although I > > believe it is more correct to lookup test data relative to > > G_TEST_DIST. > > > > Then we'd have to change cwd of qemu-ga at startup to ensure relative > paths work. Right now (with the initial change) it appears broken.
By reverting the patch, it is _still_ broken if you run the test manually from a different directory (say from tests/unit for example) With G_TEST_DIST, and proper testing environment, it works from any directory. Tests are not meant to be run manually, you should run them through the test runner: meson test -v test-qga > > >> > >> This reverts commit a85d09269bb1a7071d3ce0f2957e3ca9dba7c047. > >> > >> Signed-off-by: Andrey Drobyshev <andrey.drobys...@virtuozzo.com> > >> --- > >> tests/unit/test-qga.c | 6 ++++-- > >> 1 file changed, 4 insertions(+), 2 deletions(-) > >> > >> diff --git a/tests/unit/test-qga.c b/tests/unit/test-qga.c > >> index 671e83cb86..47cf5e30ec 100644 > >> --- a/tests/unit/test-qga.c > >> +++ b/tests/unit/test-qga.c > >> @@ -1034,10 +1034,12 @@ static void > >> test_qga_guest_get_osinfo(gconstpointer data) > >> g_autoptr(QDict) ret = NULL; > >> char *env[2]; > >> QDict *val; > >> + g_autofree gchar *cwd = NULL; > >> > >> + cwd = g_get_current_dir(); > >> env[0] = g_strdup_printf( > >> - "QGA_OS_RELEASE=%s%c..%cdata%ctest-qga-os-release", > >> - g_test_get_dir(G_TEST_DIST), G_DIR_SEPARATOR, G_DIR_SEPARATOR, > >> G_DIR_SEPARATOR); > >> + "QGA_OS_RELEASE=%s%ctests%cdata%ctest-qga-os-release", > >> + cwd, G_DIR_SEPARATOR, G_DIR_SEPARATOR, G_DIR_SEPARATOR); > >> env[1] = NULL; > >> fixture_setup(&fixture, NULL, env); > >> > >> -- > >> 2.39.3 > >> > >> > > > > > -- Marc-André Lureau