Add libbpf gating test

Signed-off-by: Ziqian SUN (Zamir) <zsun@redhat.com>
This commit is contained in:
Ziqian SUN (Zamir) 2024-08-22 15:01:59 +08:00
parent 302eb9b594
commit 5b7d0bf098
7 changed files with 144 additions and 0 deletions

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-10
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

62
tests/sanity/Makefile Normal file
View File

@ -0,0 +1,62 @@
#!/bin/bash
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Description: Gating test for libbpf
# Author: Ziqian SUN (Zamir) <zsun@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2022 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TOPLEVEL_NAMESPACE=kernel
PACKAGE_NAME=libbpf
RELATIVE_PATH=general/ebpf-tracing/libbpf/gating
export TESTVERSION=1.0
export TEST=/$(TOPLEVEL_NAMESPACE)/$(RELATIVE_PATH)
.PHONY: all install download clean
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE libbpf-test.c
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
chmod a+x ./runtest.sh
clean:
rm -f *~ *.rpm $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@touch $(METADATA)
@echo "Owner: Ziqian SUN (Zamir) <zsun@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Description: libbpf gating test">> $(METADATA)
@echo "TestTime: 90m" >> $(METADATA)
@echo "RunFor: $(PACKAGE_NAME)" >> $(METADATA)
@echo "Requires: gcc libbpf" >> $(METADATA)
@echo "RhtsRequires: " >> $(METADATA)

1
tests/sanity/PURPOSE Normal file
View File

@ -0,0 +1 @@
Gating test for libbpf

View File

@ -0,0 +1,9 @@
#include<bpf/libbpf.h>
int main(){
int ver1=libbpf_major_version();
int ver2=libbpf_major_version();
printf("libbpf major version: %d\n", ver1);
printf("libbpf minor version: %d\n", ver2);
return 0;
}

13
tests/sanity/metadata Normal file
View File

@ -0,0 +1,13 @@
[General]
name=libbpf
owner= Ziqian SUN (Zamir) <zsun@redhat.com>
description=Gating test for libbpf
license=GPLv2
confidential=no
destructive=no
[restraint]
entry_point=./runtest.sh
max_time=90m
dependencies=libbpf-devel,gcc
repoRequires=

42
tests/sanity/runtest.sh Executable file
View File

@ -0,0 +1,42 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh for libbpf gating test.
# Author: Ziqian SUN (Zamir) <zsun@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2024 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
rlJournalStart
rlPhaseStartTest "Test"
rlRun -l "gcc libbpf-test.c -l bpf -o libbpf-test"
rlRun -l "./libbpf-test | grep major"
rlRun -l "./libbpf-test | grep minor"
rlPhaseEnd
rlPhaseStartCleanup
rm libbpf-test
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

11
tests/tests.yml Normal file
View File

@ -0,0 +1,11 @@
- hosts: localhost
tags:
- classic
roles:
- role: standard-test-beakerlib
tests:
- sanity
required_packages:
- libbpf-devel
- libbpf
- gcc