提交 6796a3ed 编写于 作者: D Daniel P. Berrangé

tests: improve build time for qemuxml2argvtest

On Fedora 31 with GCC 9.2.1, compiling qemuxml2argvtest takes
about 36 seconds since

  commit 30c6d992
  Author: Jiri Denemark <jdenemar@redhat.com>
  Date:   Thu Oct 24 17:51:42 2019 +0200

    qemuxml2argvtest: Update host arch for DO_TEST*ARCH* tests

The optimizer is hitting some pathological performance behaviour due to
the high number of branches in the mymain() method.

Pushing the branch tests down into the testCompareXMLToArgv method
brings the compile time down to 3 seconds.

This likely related to this GCC bug:

  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58479Reviewed-by: NDaniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
上级 d802d9ab
......@@ -412,6 +412,9 @@ testCompareXMLToArgv(const void *data)
size_t i;
qemuDomainObjPrivatePtr priv = NULL;
if (info->arch != VIR_ARCH_NONE && info->arch != VIR_ARCH_X86_64)
qemuTestSetHostArch(driver.caps, info->arch);
memset(&monitor_chr, 0, sizeof(monitor_chr));
if (!(conn = virGetConnect()))
......@@ -580,6 +583,9 @@ testCompareXMLToArgv(const void *data)
virSetConnectStorage(NULL);
virObjectUnref(conn);
VIR_FREE(migrateURI);
if (info->arch != VIR_ARCH_NONE && info->arch != VIR_ARCH_X86_64)
qemuTestSetHostArch(driver.caps, VIR_ARCH_NONE);
return ret;
}
......@@ -699,13 +705,9 @@ mymain(void)
__VA_ARGS__, ARG_END) < 0) \
return EXIT_FAILURE; \
testInfoSetPaths(&info, _suffix); \
if (info.arch != VIR_ARCH_NONE && info.arch != VIR_ARCH_X86_64) \
qemuTestSetHostArch(driver.caps, info.arch); \
if (virTestRun("QEMU XML-2-ARGV " _name _suffix, \
testCompareXMLToArgv, &info) < 0) \
ret = -1; \
if (info.arch != VIR_ARCH_NONE && info.arch != VIR_ARCH_X86_64) \
qemuTestSetHostArch(driver.caps, VIR_ARCH_NONE); \
testQemuInfoClear(&info); \
} while (0)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册