vppinfra: fix calljmp test
Change-Id: Id1b380880c6509d983727f6fb57e7db97e66655a Type: fix Signed-off-by: Damjan Marion <damarion@cisco.com>
This commit is contained in:

committed by
Florin Coras

parent
26abb60714
commit
97475fdebf
@ -82,27 +82,25 @@ test_longjmp_main (unformat_input_t * input)
|
||||
static uword
|
||||
f3 (uword arg)
|
||||
{
|
||||
uword i, j, array[10];
|
||||
|
||||
for (i = 0; i < ARRAY_LEN (array); i++)
|
||||
array[i] = arg + i;
|
||||
|
||||
j = 0;
|
||||
for (i = 0; i < ARRAY_LEN (array); i++)
|
||||
j ^= array[i];
|
||||
|
||||
return j;
|
||||
return (uword) __builtin_frame_address (0);
|
||||
}
|
||||
|
||||
static void
|
||||
test_calljmp (unformat_input_t * input)
|
||||
{
|
||||
static u8 stack[32 * 1024] __attribute__ ((aligned (16)));
|
||||
uword v;
|
||||
u8 stack[4096] __attribute__ ((aligned (16))) = {};
|
||||
uword start, end, v;
|
||||
|
||||
start = pointer_to_uword (stack);
|
||||
end = start + ARRAY_LEN (stack);
|
||||
|
||||
v = f3 (0);
|
||||
if (!(v < start || v > end))
|
||||
clib_panic ("something went wrong in the calljmp test");
|
||||
|
||||
v = clib_calljmp (f3, 0, stack + sizeof (stack));
|
||||
ASSERT (v == f3 (0));
|
||||
if_verbose ("calljump ok");
|
||||
if_verbose ("calljump %s",
|
||||
v >= start && v < (end - sizeof (uword)) ? "ok" : "fail");
|
||||
}
|
||||
|
||||
#ifdef CLIB_UNIX
|
||||
|
Reference in New Issue
Block a user