Most (all?) tests fail with or because of this message (it makes the test output different than expected)
"Failed to read classid file: Object not found"
It is generated by libnl3 which is a dependency of libvirt and emitted when /etc/libnl/classid is not found. Creating this file makes the testsuite run successfully on ARM.
However this file does not exist on x86 either and there it is not a problem so the difference is that on ARM libvirt tests look for it when it should not (strace logs of ARM shows that indeed it is stat64()-d unsuccessfully, whereas on x86 it does not appear in the logs at all).
The bottom of lib/route/classid.c in the package libnl3 has
static void __init classid_init(void)
{
int err, i;
for (i = 0; i < CLASSID_NAME_HT_SIZ; i++) nl_init_list_head(&tbl_name[i]);
if ((err = rtnl_tc_read_classid_file()) < 0) fprintf(stderr, "Failed to read classid file: %s\n", nl_geterror(err));
}
This __init function is maybe invoked on ARM but not on other archs and causes the different behaviour.
Most (all?) tests fail with or because of this message (it makes the test output different than expected)
"Failed to read classid file: Object not found"
It is generated by libnl3 which is a dependency of libvirt and emitted when /etc/libnl/classid is not found. Creating this file makes the testsuite run successfully on ARM.
However this file does not exist on x86 either and there it is not a problem so the difference is that on ARM libvirt tests look for it when it should not (strace logs of ARM shows that indeed it is stat64()-d unsuccessfully, whereas on x86 it does not appear in the logs at all).
The bottom of lib/route/classid.c in the package libnl3 has
static void __init classid_init(void)
{
int err, i;
for (i = 0; i < CLASSID_ NAME_HT_ SIZ; i++)
nl_init_ list_head( &tbl_name[ i]);
if ((err = rtnl_tc_ read_classid_ file()) < 0)
fprintf( stderr, "Failed to read classid file: %s\n", nl_geterror(err));
}
This __init function is maybe invoked on ARM but not on other archs and causes the different behaviour.