Adjust BPF JIT compiler regression tests to catch up with r199603.

This commit is contained in:
jkim 2009-11-20 18:53:38 +00:00
parent 052bc52af7
commit ad0b2feb64
7 changed files with 35 additions and 20 deletions

View File

@ -43,6 +43,7 @@ CFLAGS+= -DBPF_VALIDATE
SRCS+= ${SYSDIR}/net/bpf_jitter.c \
${SYSDIR}/${MACHINE_ARCH}/${MACHINE_ARCH}/bpf_jit_machdep.c
CFLAGS+= -DBPF_JIT_COMPILER
LIBS+= -lutil
WARNS?= 6
.else
SRCS+= ${SYSDIR}/net/bpf_filter.c
@ -52,7 +53,7 @@ WARNS?= 2
.for TEST in ${TEST_CASES}
${TEST}: ${.CURDIR}/tests/${TEST}.h ${SRCS}
@${CC} ${CFLAGS} -DBPF_TEST_H=\"${TEST}.h\" \
-o ${.CURDIR}/${TEST} ${SRCS}
-o ${.CURDIR}/${TEST} ${SRCS} ${LIBS}
.endfor
all: ${TEST_CASES}

View File

@ -1,5 +1,5 @@
/*-
* Copyright (C) 2008 Jung-uk Kim <jkim@FreeBSD.org>. All rights reserved.
* Copyright (C) 2009 Jung-uk Kim <jkim@FreeBSD.org>. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@ -57,6 +57,8 @@ static int verbose = LOG_LEVEL;
#ifdef BPF_JIT_COMPILER
#include <libutil.h>
#include <net/bpf_jitter.h>
static u_int
@ -73,6 +75,10 @@ bpf_compile_and_filter(void)
printf("FATAL\n");
exit(FATAL);
}
if (verbose > 2) {
printf("\n");
hexdump(filter->func, filter->size, NULL, HD_OMIT_CHARS);
}
for (i = 0; i < BPF_NRUNS; i++)
ret = (*(filter->func))(pkt, wirelen, buflen);
@ -222,6 +228,14 @@ main(void)
for (i = 0; i < BPF_NRUNS; i++)
ret = bpf_filter(nins != 0 ? pc : NULL, pkt, wirelen, buflen);
#endif
if (expect_signal != 0) {
if (verbose > 1)
printf("Expected signal %d but got none:\t",
expect_signal);
if (verbose > 0)
printf("FAILED\n");
return (FAILED);
}
if (ret != expect) {
if (verbose > 1)
printf("Expected 0x%x but got 0x%x:\t", expect, ret);

View File

@ -7,7 +7,7 @@
/* BPF program */
struct bpf_insn pc[] = {
BPF_STMT(BPF_LD+BPF_IMM, 0xdeadc0de),
BPF_STMT(BPF_LD+BPF_MEM, 0xffffffff),
BPF_STMT(BPF_LD+BPF_MEM, 0x8fffffff),
BPF_STMT(BPF_RET+BPF_A, 0),
};
@ -29,8 +29,8 @@ int invalid = 1;
u_int expect = 0xdeadc0de;
/* Expected signal */
#ifdef BPF_JIT_COMPILER
int expect_signal = SIGSEGV;
#else
#ifdef __amd64__
int expect_signal = SIGBUS;
#else
int expect_signal = SIGSEGV;
#endif

View File

@ -7,7 +7,7 @@
/* BPF program */
struct bpf_insn pc[] = {
BPF_STMT(BPF_LD+BPF_IMM, 0xdeadc0de),
BPF_STMT(BPF_LDX+BPF_MEM, 0xffffffff),
BPF_STMT(BPF_LDX+BPF_MEM, 0x8fffffff),
BPF_STMT(BPF_MISC+BPF_TXA, 0),
BPF_STMT(BPF_RET+BPF_A, 0),
};
@ -30,8 +30,8 @@ int invalid = 1;
u_int expect = 0xdeadc0de;
/* Expected signal */
#ifdef BPF_JIT_COMPILER
int expect_signal = SIGSEGV;
#else
#ifdef __amd64__
int expect_signal = SIGBUS;
#else
int expect_signal = SIGSEGV;
#endif

View File

@ -7,7 +7,7 @@
/* BPF program */
struct bpf_insn pc[] = {
BPF_STMT(BPF_LD+BPF_IMM, 0xdeadc0de),
BPF_STMT(BPF_ST, 0xffffffff),
BPF_STMT(BPF_ST, 0x8fffffff),
BPF_STMT(BPF_RET+BPF_A, 0),
};
@ -29,8 +29,8 @@ int invalid = 1;
u_int expect = 0xdeadc0de;
/* Expected signal */
#ifdef BPF_JIT_COMPILER
int expect_signal = SIGSEGV;
#else
#ifdef __amd64__
int expect_signal = SIGBUS;
#else
int expect_signal = SIGSEGV;
#endif

View File

@ -7,7 +7,7 @@
/* BPF program */
struct bpf_insn pc[] = {
BPF_STMT(BPF_LD+BPF_IMM, 0xdeadc0de),
BPF_STMT(BPF_STX, 0xffffffff),
BPF_STMT(BPF_STX, 0x8fffffff),
BPF_STMT(BPF_MISC+BPF_TXA, 0),
BPF_STMT(BPF_RET+BPF_A, 0),
};
@ -30,8 +30,8 @@ int invalid = 1;
u_int expect = 0xdeadc0de;
/* Expected signal */
#ifdef BPF_JIT_COMPILER
int expect_signal = SIGSEGV;
#else
#ifdef __amd64__
int expect_signal = SIGBUS;
#else
int expect_signal = SIGSEGV;
#endif

View File

@ -1,12 +1,12 @@
/*-
* Test 0080: Check uninitialized scratch memory (only for JIT compiler).
* Test 0080: Check uninitialized scratch memory (obsolete).
*
* $FreeBSD$
*/
/* BPF program */
struct bpf_insn pc[] = {
#ifdef BPF_JIT_COMPILER
#ifdef BPF_JIT_COMPILER_OBSOLETE
BPF_STMT(BPF_LDX+BPF_IMM, 0xffffffff),
BPF_STMT(BPF_LD+BPF_MEM, 0),
BPF_JUMP(BPF_JMP+BPF_JSET+BPF_X, 0, 29, 0),