mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-03 18:13:01 +00:00
Further strengthened the unit self-test, by also testing find_auxv(). Now all
functions exported by ume.c are tested. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2762
This commit is contained in:
parent
9f0e6ed434
commit
e7ca2d4602
@ -152,7 +152,6 @@ weirdioctl_SOURCES = weirdioctl.c
|
||||
metadata_SOURCES = metadata.c
|
||||
threadederrno_SOURCES = threadederrno.c
|
||||
threadederrno_LDADD = -lpthread
|
||||
vgtest_ume_SOURCES = vgtest_ume.c
|
||||
writev_SOURCES = writev.c
|
||||
zeropage_SOURCES = zeropage.c
|
||||
|
||||
@ -165,6 +164,8 @@ new_override_SOURCES = new_override.cpp
|
||||
hello_SOURCES = hello.c
|
||||
hello_LDFLAGS = -Wl,-defsym,kickstart_base=0x50000000 \
|
||||
-Wl,-T,../../coregrind/${VG_ARCH}/stage2.lds
|
||||
vgtest_ume_SOURCES = vgtest_ume.c
|
||||
vgtest_ume_LDFLAGS = -Wl,-e,_ume_entry
|
||||
vgtest_ume_LDADD = ../../coregrind/ume.o \
|
||||
../../coregrind/ume_entry.o \
|
||||
../../coregrind/jmp_with_stack.o
|
||||
|
||||
@ -38,6 +38,36 @@ static void test__foreach_map(void)
|
||||
foreach_map(f, /*dummy*/NULL);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Test find_auxv()
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
static void test__find_auxv(void)
|
||||
{
|
||||
struct ume_auxv *auxv;
|
||||
|
||||
assert(ume_exec_esp != NULL);
|
||||
|
||||
fprintf(stderr, "Calling find_auxv()\n");
|
||||
auxv = find_auxv((int*)ume_exec_esp);
|
||||
|
||||
// Check the auxv value looks sane
|
||||
assert((void*)auxv > (void*)ume_exec_esp);
|
||||
assert((unsigned int)auxv - (unsigned int)ume_exec_esp < 0x10000);
|
||||
|
||||
// Scan the auxv, check it looks sane
|
||||
for (; auxv->a_type != AT_NULL; auxv++) {
|
||||
switch(auxv->a_type) {
|
||||
// Check a_type value looks like a plausible small constant
|
||||
case 1 ... 64:
|
||||
break;
|
||||
|
||||
default:
|
||||
assert(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Test do_exec()
|
||||
//-------------------------------------------------------------------
|
||||
@ -109,6 +139,7 @@ static void test__do_exec(void)
|
||||
int main(void)
|
||||
{
|
||||
test__foreach_map();
|
||||
test__find_auxv();
|
||||
test__do_exec();
|
||||
|
||||
return 0;
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
Calling foreach_map()
|
||||
Calling find_auxv()
|
||||
Calling do_exec("hello")
|
||||
Hello, world!
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user