1#!/bin/sh
2# SPDX-License-Identifier: GPL-2.0
3
4export TESTNAME=test_libbpf
5
6# Determine selftest success via shell exit code
7exit_handler()
8{
9	if (( $? == 0 )); then
10		echo "selftests: $TESTNAME [PASS]";
11	else
12		echo "$TESTNAME: failed at file $LAST_LOADED" 1>&2
13		echo "selftests: $TESTNAME [FAILED]";
14	fi
15}
16
17libbpf_open_file()
18{
19	LAST_LOADED=$1
20	if [ -n "$VERBOSE" ]; then
21	    ./test_libbpf_open $1
22	else
23	    ./test_libbpf_open --quiet $1
24	fi
25}
26
27# Exit script immediately (well catched by trap handler) if any
28# program/thing exits with a non-zero status.
29set -e
30
31# (Use 'trap -l' to list meaning of numbers)
32trap exit_handler 0 2 3 6 9
33
34libbpf_open_file test_l4lb.o
35
36# TODO: fix libbpf to load noinline functions
37# [warning] libbpf: incorrect bpf_call opcode
38#libbpf_open_file test_l4lb_noinline.o
39
40# TODO: fix test_xdp_meta.c to load with libbpf
41# [warning] libbpf: test_xdp_meta.o doesn't provide kernel version
42#libbpf_open_file test_xdp_meta.o
43
44# TODO: fix libbpf to handle .eh_frame
45# [warning] libbpf: relocation failed: no section(10)
46#libbpf_open_file ../../../../samples/bpf/tracex3_kern.o
47
48# Success
49exit 0
50