Skip to content

Commit

Permalink
tests/xmlbuffer: really check nolibxml/libxml import/export
Browse files Browse the repository at this point in the history
LIBXML env vars are parsed only once per process, we cannot
change them between imports/exports.

wrapper.sh now runs xmlbuffer once per combination of env vars.

Signed-off-by: Brice Goglin <Brice.Goglin@inria.fr>
  • Loading branch information
bgoglin committed Dec 12, 2018
1 parent 49f01d9 commit 827140a
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 25 deletions.
12 changes: 10 additions & 2 deletions tests/hwloc/wrapper.sh.in
Expand Up @@ -2,11 +2,12 @@
#-*-sh-*-

#
# Copyright © 2012-2017 Inria. All rights reserved.
# Copyright © 2012-2018 Inria. All rights reserved.
# See COPYING in top-level directory.
#

HWLOC_top_builddir="@HWLOC_top_builddir@"
xmlbuffer=xmlbuffer@EXEEXT@

HWLOC_PLUGINS_PATH=${HWLOC_top_builddir}/src
export HWLOC_PLUGINS_PATH
Expand All @@ -17,4 +18,11 @@ export HWLOC_DEBUG_CHECK
HWLOC_LIBXML_CLEANUP=1
export HWLOC_LIBXML_CLEANUP

"$@"
if test "`basename $1`" = "$xmlbuffer"; then
"$@" 1 1
"$@" 0 1
"$@" 1 0
"$@" 0 0
else
"$@"
fi
45 changes: 22 additions & 23 deletions tests/hwloc/xmlbuffer.c
Expand Up @@ -73,36 +73,35 @@ static int one_test(void)
return err;
}

int main(void)
int main(int argc, char *argv[])
{
int err;

putenv("HWLOC_LIBXML_CLEANUP=1");
if (argc < 3) {
fprintf(stderr, "Need 0 or 1 twice as arguments for enabling/disabling libxml import and export\n");
fprintf(stderr, "For instance `xmlbuffer 0 1' enables libxml for export only\n");
fprintf(stderr, "Those arguments are passed by wrapper.sh during make check\n");
exit(EXIT_FAILURE);
}

printf("using default import and export\n");
putenv("HWLOC_LIBXML_IMPORT=1");
putenv("HWLOC_LIBXML_EXPORT=1");
err = one_test();
if (err < 0)
return err;
putenv("HWLOC_LIBXML_CLEANUP=1");

printf("using minimalistic import and default export\n");
putenv("HWLOC_LIBXML_IMPORT=0");
putenv("HWLOC_LIBXML_EXPORT=1");
err = one_test();
if (err < 0)
return err;
if (atoi(argv[1])) {
putenv("HWLOC_LIBXML_IMPORT=1");
printf("import=libxml ");
} else {
putenv("HWLOC_LIBXML_IMPORT=0");
printf("import=nolibxml ");
}

printf("using default import and minimalistic export\n");
putenv("HWLOC_LIBXML_IMPORT=1");
putenv("HWLOC_LIBXML_EXPORT=0");
err = one_test();
if (err < 0)
return err;
if (atoi(argv[2])) {
putenv("HWLOC_LIBXML_EXPORT=1");
printf("export=libxml\n");
} else {
putenv("HWLOC_LIBXML_EXPORT=0");
printf("export=nolibxml\n");
}

printf("using minimalistic import and export\n");
putenv("HWLOC_LIBXML_IMPORT=0");
putenv("HWLOC_LIBXML_EXPORT=0");
err = one_test();
if (err < 0)
return err;
Expand Down

0 comments on commit 827140a

Please sign in to comment.