mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
Avoid re-exec-self in bug-setlocale1.
This commit is contained in:
parent
209826bcf2
commit
9162c01d09
@ -1,3 +1,10 @@
|
|||||||
|
2015-03-05 Roland McGrath <roland@hack.frob.com>
|
||||||
|
|
||||||
|
* Makeconfig (test-wrapper-env-only): New variable.
|
||||||
|
* Rules (make-test-out): If variable $*-ENV-only is nonempty,
|
||||||
|
then use that with $(test-wrapper-env-only) rather than using
|
||||||
|
$(test-wrapper-env) $(run-program-env) $($*-ENV).
|
||||||
|
|
||||||
2015-03-05 H.J. Lu <hongjiu.lu@intel.com>
|
2015-03-05 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
[BZ #18082]
|
[BZ #18082]
|
||||||
|
@ -611,6 +611,11 @@ endif
|
|||||||
ifndef test-wrapper-env
|
ifndef test-wrapper-env
|
||||||
test-wrapper-env = $(test-wrapper) env
|
test-wrapper-env = $(test-wrapper) env
|
||||||
endif
|
endif
|
||||||
|
# Likewise, but the program's environment will be empty except for any
|
||||||
|
# explicit <variable>=<value> assignments preceding the program name.
|
||||||
|
ifndef test-wrapper-env-only
|
||||||
|
test-wrapper-env-only = $(test-wrapper) env -i
|
||||||
|
endif
|
||||||
|
|
||||||
# Whether to run test programs built for the library's host system.
|
# Whether to run test programs built for the library's host system.
|
||||||
ifndef run-built-tests
|
ifndef run-built-tests
|
||||||
|
8
Rules
8
Rules
@ -186,9 +186,11 @@ ifneq "$(strip $(tests) $(xtests) $(test-srcs))" ""
|
|||||||
# These are the implicit rules for making test outputs
|
# These are the implicit rules for making test outputs
|
||||||
# from the test programs and whatever input files are present.
|
# from the test programs and whatever input files are present.
|
||||||
|
|
||||||
make-test-out = $(test-wrapper-env) \
|
define make-test-out
|
||||||
$(run-program-env) \
|
$(if $($*-ENV-only),$(test-wrapper-env-only) $($*-ENV-only),\
|
||||||
$($*-ENV) $(host-test-program-cmd) $($*-ARGS)
|
$(test-wrapper-env) $(run-program-env) $($*-ENV)) \
|
||||||
|
$(host-test-program-cmd) $($*-ARGS)
|
||||||
|
endef
|
||||||
$(objpfx)%.out: %.input $(objpfx)%
|
$(objpfx)%.out: %.input $(objpfx)%
|
||||||
$(make-test-out) > $@ < $(word 1,$^); \
|
$(make-test-out) > $@ < $(word 1,$^); \
|
||||||
$(evaluate-test)
|
$(evaluate-test)
|
||||||
|
@ -1,3 +1,14 @@
|
|||||||
|
2015-03-04 Roland McGrath <roland@hack.frob.com>
|
||||||
|
|
||||||
|
* bug-setlocale1.c (do_test): Remove argument handling and
|
||||||
|
self-exec'ing logic. Just expect to be run with the right
|
||||||
|
variables (and nothing else) directly in the environment instead.
|
||||||
|
(TEST_FUNCTION): Don't pass arguments to do_test.
|
||||||
|
* Makefile (bug-setlocale1-ARGS, bug-setlocale1-static-ARGS):
|
||||||
|
Variables removed.
|
||||||
|
(bug-setlocale1-ENV-only, bug-setlocale1-static-ENV-only):
|
||||||
|
New variables.
|
||||||
|
|
||||||
2015-02-23 Alexandre Oliva <aoliva@redhat.com>
|
2015-02-23 Alexandre Oliva <aoliva@redhat.com>
|
||||||
|
|
||||||
* unicode-gen/ctype_compatibility.py: Use date ranges in
|
* unicode-gen/ctype_compatibility.py: Use date ranges in
|
||||||
|
@ -237,8 +237,8 @@ $(objpfx)mtrace-tst-leaks.out: $(objpfx)tst-leaks.out
|
|||||||
$(common-objpfx)malloc/mtrace $(objpfx)tst-leaks.mtrace > $@; \
|
$(common-objpfx)malloc/mtrace $(objpfx)tst-leaks.mtrace > $@; \
|
||||||
$(evaluate-test)
|
$(evaluate-test)
|
||||||
|
|
||||||
bug-setlocale1-ARGS = -- $(host-test-program-cmd)
|
bug-setlocale1-ENV-only = LOCPATH=$(objpfx) LC_CTYPE=de_DE.UTF-8
|
||||||
bug-setlocale1-static-ARGS = $(bug-setlocale1-ARGS)
|
bug-setlocale1-static-ENV-only = $(bug-setlocale1-ENV-only)
|
||||||
|
|
||||||
$(objdir)/iconvdata/gconv-modules:
|
$(objdir)/iconvdata/gconv-modules:
|
||||||
$(MAKE) -C ../iconvdata subdir=iconvdata $@
|
$(MAKE) -C ../iconvdata subdir=iconvdata $@
|
||||||
|
@ -7,44 +7,8 @@
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
do_test (int argc, char *argv[])
|
do_test (void)
|
||||||
{
|
{
|
||||||
if (argc > 1)
|
|
||||||
{
|
|
||||||
char *newargv[5];
|
|
||||||
int i;
|
|
||||||
if (argc != 2 && argc != 5)
|
|
||||||
{
|
|
||||||
printf ("wrong number of arguments (%d)\n", argc);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < (argc == 5 ? 4 : 1); i++)
|
|
||||||
newargv[i] = argv[i + 1];
|
|
||||||
newargv[i] = NULL;
|
|
||||||
|
|
||||||
char *env[3];
|
|
||||||
env[0] = (char *) "LC_CTYPE=de_DE.UTF-8";
|
|
||||||
char *loc = getenv ("LOCPATH");
|
|
||||||
if (loc == NULL || loc[0] == '\0')
|
|
||||||
{
|
|
||||||
puts ("LOCPATH not set");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
asprintf (&env[1], "LOCPATH=%s", loc);
|
|
||||||
if (env[1] == NULL)
|
|
||||||
{
|
|
||||||
puts ("asprintf failed");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
env[2] = NULL;
|
|
||||||
|
|
||||||
execve (newargv[0], newargv, env);
|
|
||||||
|
|
||||||
puts ("execve returned");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
char *a = setlocale (LC_ALL, "");
|
char *a = setlocale (LC_ALL, "");
|
||||||
@ -128,5 +92,5 @@ do_test (int argc, char *argv[])
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define TEST_FUNCTION do_test (argc, argv)
|
#define TEST_FUNCTION do_test ()
|
||||||
#include "../test-skeleton.c"
|
#include "../test-skeleton.c"
|
||||||
|
Loading…
Reference in New Issue
Block a user