RHEL 9.0.0 Alpha bootstrap
The content of this branch was automatically imported from Fedora ELN with the following as its source: https://src.fedoraproject.org/rpms/kmod#bddd48bb1f02b70118e3a0b652848567edac13b0
This commit is contained in:
parent
98c736cb8e
commit
c62209c195
21
.gitignore
vendored
21
.gitignore
vendored
@ -0,0 +1,21 @@
|
||||
/kmod-7.tar.xz
|
||||
/kmod-8.tar.xz
|
||||
/kmod-9.tar.xz
|
||||
/kmod-10.tar.xz
|
||||
/kmod-11.tar.xz
|
||||
/kmod-12.tar.xz
|
||||
/kmod-13.tar.xz
|
||||
/kmod-14.tar.xz
|
||||
/kmod-15.tar.xz
|
||||
/kmod-16.tar.xz
|
||||
/kmod-17.tar.xz
|
||||
/kmod-18.tar.xz
|
||||
/kmod-19.tar.xz
|
||||
/kmod-20.tar.xz
|
||||
/kmod-21.tar.xz
|
||||
/kmod-22.tar.xz
|
||||
/kmod-23.tar.xz
|
||||
/kmod-24.tar.xz
|
||||
/kmod-25.tar.xz
|
||||
/kmod-26.tar.xz
|
||||
/kmod-27.tar.xz
|
53
0001-depmod-do-not-output-.bin-to-stdout.patch
Normal file
53
0001-depmod-do-not-output-.bin-to-stdout.patch
Normal file
@ -0,0 +1,53 @@
|
||||
From 53b30aeba2dedae9f5558f560231d9462e063dfc Mon Sep 17 00:00:00 2001
|
||||
From: Lucas De Marchi <lucas.demarchi@intel.com>
|
||||
Date: Thu, 5 Mar 2020 13:33:10 -0800
|
||||
Subject: [PATCH] depmod: do not output .bin to stdout
|
||||
|
||||
index_write() relies on fseek/ftell to manage the position to which we
|
||||
are write and thus needs the file stream to support it.
|
||||
|
||||
Right now when trying to write the index to stdout we fail with:
|
||||
|
||||
depmod: tools/depmod.c:416: index_write: Assertion `initial_offset >= 0' failed.
|
||||
Aborted (core dumped)
|
||||
|
||||
We have no interest in outputting our index to stdout, so just skip it
|
||||
like is done with other indexes.
|
||||
|
||||
While at it, add/remove some newlines to improve readability.
|
||||
|
||||
Reported-by: Yanko Kaneti <yaneti@declera.com>
|
||||
Fix: b866b2165ae6 ("Lookup aliases in the modules.builtin.modinfo")
|
||||
---
|
||||
tools/depmod.c | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tools/depmod.c b/tools/depmod.c
|
||||
index fbbce10eb0db..875e31480818 100644
|
||||
--- a/tools/depmod.c
|
||||
+++ b/tools/depmod.c
|
||||
@@ -2408,8 +2408,10 @@ static int output_builtin_alias_bin(struct depmod *depmod, FILE *out)
|
||||
struct index_node *idx;
|
||||
struct kmod_list *l, *builtin = NULL;
|
||||
|
||||
- idx = index_create();
|
||||
+ if (out == stdout)
|
||||
+ return 0;
|
||||
|
||||
+ idx = index_create();
|
||||
if (idx == NULL) {
|
||||
ret = -ENOMEM;
|
||||
goto fail;
|
||||
@@ -2456,7 +2458,9 @@ static int output_builtin_alias_bin(struct depmod *depmod, FILE *out)
|
||||
|
||||
if (count)
|
||||
index_write(idx, out);
|
||||
+
|
||||
index_destroy(idx);
|
||||
+
|
||||
fail:
|
||||
if (builtin)
|
||||
kmod_module_unref_list(builtin);
|
||||
--
|
||||
2.25.0
|
||||
|
322
kmod.spec
Normal file
322
kmod.spec
Normal file
@ -0,0 +1,322 @@
|
||||
Name: kmod
|
||||
Version: 27
|
||||
Release: 3%{?dist}
|
||||
Summary: Linux kernel module management utilities
|
||||
|
||||
License: GPLv2+
|
||||
URL: http://git.kernel.org/?p=utils/kernel/kmod/kmod.git;a=summary
|
||||
Source0: https://www.kernel.org/pub/linux/utils/kernel/kmod/%{name}-%{version}.tar.xz
|
||||
Source1: weak-modules
|
||||
Exclusiveos: Linux
|
||||
|
||||
Patch01: 0001-depmod-do-not-output-.bin-to-stdout.patch
|
||||
|
||||
BuildRequires: gcc
|
||||
BuildRequires: chrpath
|
||||
BuildRequires: zlib-devel
|
||||
BuildRequires: xz-devel
|
||||
BuildRequires: libxslt
|
||||
BuildRequires: openssl-devel
|
||||
|
||||
Provides: module-init-tools = 4.0-1
|
||||
Obsoletes: module-init-tools < 4.0-1
|
||||
Provides: /sbin/modprobe
|
||||
|
||||
%description
|
||||
The kmod package provides various programs needed for automatic
|
||||
loading and unloading of modules under 2.6, 3.x, and later kernels, as well
|
||||
as other module management programs. Device drivers and filesystems are two
|
||||
examples of loaded and unloaded modules.
|
||||
|
||||
%package libs
|
||||
Summary: Libraries to handle kernel module loading and unloading
|
||||
License: LGPLv2+
|
||||
|
||||
%description libs
|
||||
The kmod-libs package provides runtime libraries for any application that
|
||||
wishes to load or unload Linux kernel modules from the running system.
|
||||
|
||||
%package devel
|
||||
Summary: Header files for kmod development
|
||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description devel
|
||||
The kmod-devel package provides header files used for development of
|
||||
applications that wish to load or unload Linux kernel modules.
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
|
||||
%build
|
||||
%configure \
|
||||
--with-openssl \
|
||||
--with-zlib \
|
||||
--with-xz
|
||||
|
||||
%{make_build} V=1
|
||||
|
||||
%install
|
||||
%{make_install}
|
||||
|
||||
pushd $RPM_BUILD_ROOT/%{_mandir}/man5
|
||||
ln -s modprobe.d.5.gz modprobe.conf.5.gz
|
||||
popd
|
||||
|
||||
find %{buildroot} -type f -name "*.la" -delete
|
||||
|
||||
mkdir -p $RPM_BUILD_ROOT%{_sbindir}
|
||||
ln -sf ../bin/kmod $RPM_BUILD_ROOT%{_sbindir}/modprobe
|
||||
ln -sf ../bin/kmod $RPM_BUILD_ROOT%{_sbindir}/modinfo
|
||||
ln -sf ../bin/kmod $RPM_BUILD_ROOT%{_sbindir}/insmod
|
||||
ln -sf ../bin/kmod $RPM_BUILD_ROOT%{_sbindir}/rmmod
|
||||
ln -sf ../bin/kmod $RPM_BUILD_ROOT%{_sbindir}/depmod
|
||||
ln -sf ../bin/kmod $RPM_BUILD_ROOT%{_sbindir}/lsmod
|
||||
|
||||
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d
|
||||
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/depmod.d
|
||||
mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/modprobe.d
|
||||
|
||||
mkdir -p $RPM_BUILD_ROOT/sbin
|
||||
install -m 755 %{SOURCE1} $RPM_BUILD_ROOT%{_sbindir}/weak-modules
|
||||
|
||||
%files
|
||||
%dir %{_sysconfdir}/depmod.d
|
||||
%dir %{_sysconfdir}/modprobe.d
|
||||
%dir %{_prefix}/lib/modprobe.d
|
||||
%{_bindir}/kmod
|
||||
%{_sbindir}/modprobe
|
||||
%{_sbindir}/modinfo
|
||||
%{_sbindir}/insmod
|
||||
%{_sbindir}/rmmod
|
||||
%{_sbindir}/lsmod
|
||||
%{_sbindir}/depmod
|
||||
%{_sbindir}/weak-modules
|
||||
%{_datadir}/bash-completion/
|
||||
%attr(0644,root,root) %{_mandir}/man5/*.5*
|
||||
%attr(0644,root,root) %{_mandir}/man8/*.8*
|
||||
%doc NEWS README TODO
|
||||
|
||||
%files libs
|
||||
%license COPYING
|
||||
%{_libdir}/libkmod.so.*
|
||||
|
||||
%files devel
|
||||
%{_includedir}/libkmod.h
|
||||
%{_libdir}/pkgconfig/libkmod.pc
|
||||
%{_libdir}/libkmod.so
|
||||
|
||||
%changelog
|
||||
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 27-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Wed Mar 25 2020 Yauheni Kaliuta <ykaliuta@fedoraproject.org> - 27-2
|
||||
- add 0001-depmod-do-not-output-.bin-to-stdout.patch
|
||||
Resolves: rhbz#1808430
|
||||
|
||||
* Thu Feb 20 2020 Peter Robinson <pbrobinson@fedoraproject.org> - 27-1
|
||||
- New upstream v27
|
||||
|
||||
* Mon Jan 20 2020 Yauheni Kaliuta <ykaliuta@fedoraproject.org> - 26-5
|
||||
- weak-modules: sync with RHEL
|
||||
|
||||
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 26-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Mon Feb 25 2019 Yauheni Kaliuta <yauheni.kaliuta@redhat.com> - 26-3
|
||||
- weak-modules: sync with RHEL
|
||||
|
||||
* Sun Feb 24 2019 Yauheni Kaliuta <ykaliuta@fedoraproject.org> - 26-2
|
||||
- add PKCS7/openssl support (rhbz 1320921)
|
||||
|
||||
* Sun Feb 24 2019 Yauheni Kaliuta <ykaliuta@fedoraproject.org> - 26-1
|
||||
- Update to version 26 (rhbz 1673749)
|
||||
|
||||
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 25-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Mon Oct 29 2018 James Antill <james.antill@redhat.com> - 25-4
|
||||
- Remove ldconfig scriptlet, now done via. transfiletrigger in glibc (rhbz 1644063)
|
||||
|
||||
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 25-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 25-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Tue Jan 09 2018 Josh Boyer <jwboyer@fedoraproject.org> - 25-1
|
||||
- Update to version 25 (rhbz 1532597)
|
||||
|
||||
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 24-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||
|
||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 24-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Fri Feb 24 2017 Josh Boyer <jwboyer@fedoraproject.org> - 24-1
|
||||
- Update to version 24 (rhbz 1426589)
|
||||
|
||||
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 23-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Fri Jul 22 2016 Josh Boyer <jwboyer@fedoraproject.org> - 23-1
|
||||
- Update to version 23
|
||||
|
||||
* Thu Feb 25 2016 Peter Robinson <pbrobinson@fedoraproject.org> 22-4
|
||||
- Add powerpc patch to fix ToC on 4.5 ppc64le kernel
|
||||
|
||||
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 22-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Thu Jan 07 2016 Josh Boyer <jwboyer@fedoraproject.org> - 22-2
|
||||
- Fix path to dracut in weak-modules (rhbz 1295038)
|
||||
|
||||
* Wed Nov 18 2015 Josh Boyer <jwboyer@fedoraproject.org> - 22-1
|
||||
- Update to version 22
|
||||
|
||||
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 21-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Mon Jun 15 2015 Ville Skyttä <ville.skytta@iki.fi> - 21-2
|
||||
- Own bash completion dirs not owned by anything in dep chain
|
||||
|
||||
* Tue Jun 09 2015 Josh Boyer <jwboyer@fedoraproject.org> - 21-1
|
||||
- Update to verion 21
|
||||
|
||||
* Mon Mar 02 2015 Josh Boyer <jwboyer@fedoraproject.org> - 20.1
|
||||
- Update to version 20
|
||||
|
||||
* Sat Feb 21 2015 Till Maas <opensource@till.name> - 19-2
|
||||
- Rebuilt for Fedora 23 Change
|
||||
https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code
|
||||
|
||||
* Sun Nov 16 2014 Josh Boyer <jwboyer@fedoraproject.org> - 19-1
|
||||
- Update to version 19
|
||||
|
||||
* Wed Oct 29 2014 Josh Boyer <jwboyer@fedoraproject.org> - 18-4
|
||||
- Backport patch to fix device node permissions (rhbz 1147248)
|
||||
|
||||
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 18-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||
|
||||
* Sat Jul 12 2014 Tom Callaway <spot@fedoraproject.org> - 18-2
|
||||
- fix license handling
|
||||
|
||||
* Tue Jun 24 2014 Josh Boyer <jwboyer@fedoraproject.org> - 18-1
|
||||
- Update to version 18
|
||||
|
||||
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 17-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||
|
||||
* Wed Apr 09 2014 Josh Boyer <jwboyer@fedoraproject.org> - 17-1
|
||||
- Update to version 17
|
||||
|
||||
* Thu Jan 02 2014 Václav Pavlín <vpavlin@redhat.com> - 16-1
|
||||
- Update to version 16
|
||||
|
||||
* Thu Aug 22 2013 Josh Boyer <jwboyer@fedoraproject.org> - 15-1
|
||||
- Update to version 15
|
||||
|
||||
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 14-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||
|
||||
* Fri Jul 05 2013 Josh Boyer <jwboyer@redhat.com> - 14-1
|
||||
- Update to version 14
|
||||
|
||||
* Fri Apr 19 2013 Václav Pavlín <vpavlin@redhat.com> - 13-2
|
||||
- Main package should require -libs
|
||||
|
||||
* Wed Apr 10 2013 Josh Boyer <jwboyer@redhat.com> - 13-1
|
||||
- Update to version 13
|
||||
|
||||
* Wed Mar 20 2013 Weiping Pan <wpan@redhat.com> - 12-3
|
||||
- Pull in weak-modules for kABI from Jon Masters <jcm@redhat.com>
|
||||
|
||||
* Mon Mar 18 2013 Josh Boyer <jwboyer@redhat.com>
|
||||
- Add patch to make rmmod understand built-in modules (rhbz 922187)
|
||||
|
||||
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 12-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||
|
||||
* Thu Dec 06 2012 Josh Boyer <jwboyer@redhat.com>
|
||||
- Update to version 12
|
||||
|
||||
* Thu Nov 08 2012 Josh Boyer <jwboyer@redhat.com>
|
||||
- Update to version 11
|
||||
|
||||
* Fri Sep 07 2012 Josh Boyer <jwboyer@redaht.com>
|
||||
- Update to version 10
|
||||
|
||||
* Mon Aug 27 2012 Josh Boyer <jwboyer@redhat.com>
|
||||
- Update to version 9
|
||||
|
||||
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 8-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||
|
||||
* Wed May 23 2012 Josh Boyer <jwboyer@redhat.com> - 8-2
|
||||
- Provide modprobe.conf(5) (rhbz 824552)
|
||||
|
||||
* Tue May 08 2012 Josh Boyer <jwboyer@redhat.com> - 8-1
|
||||
- Update to version 8
|
||||
|
||||
* Mon Mar 19 2012 Kay Sievers <kay@redhat.com> - 7-1
|
||||
- update to version 7
|
||||
- fix issue with --show-depends, where built-in
|
||||
modules of the running kernel fail to include
|
||||
loadable modules of the kernel specified
|
||||
|
||||
* Sun Mar 04 2012 Kay Sievers <kay@redhat.com> - 6-1
|
||||
- update to version 6
|
||||
- remove all patches, they are included in the release
|
||||
|
||||
* Fri Feb 24 2012 Kay Sievers <kay@redhat.com> - 5-8
|
||||
- try to address brc#771285
|
||||
|
||||
* Sun Feb 12 2012 Kay Sievers <kay@redhat.com> - 5-7
|
||||
- fix infinite loop with softdeps
|
||||
|
||||
* Thu Feb 09 2012 Harald Hoyer <harald@redhat.com> 5-6
|
||||
- add upstream patch to fix "modprobe --ignore-install --show-depends"
|
||||
otherwise dracut misses a lot of modules, which are already loaded
|
||||
|
||||
* Wed Feb 08 2012 Harald Hoyer <harald@redhat.com> 5-5
|
||||
- add "lsmod"
|
||||
|
||||
* Tue Feb 7 2012 Kay Sievers <kay@redhat.com> - 5-4
|
||||
- remove temporarily added fake-provides
|
||||
|
||||
* Tue Feb 7 2012 Kay Sievers <kay@redhat.com> - 5-3
|
||||
- temporarily add fake-provides to be able to bootstrap
|
||||
the new udev which pulls the old udev into the buildroot
|
||||
|
||||
* Tue Feb 7 2012 Kay Sievers <kay@redhat.com> - 5-1
|
||||
- Update to version 5
|
||||
- replace the module-init-tools package and provide all tools
|
||||
as compatibility symlinks
|
||||
|
||||
* Mon Jan 16 2012 Kay Sievers <kay@redhat.com> - 4-1
|
||||
- Update to version 4
|
||||
- set --with-rootprefix=
|
||||
- enable zlib and xz support
|
||||
|
||||
* Thu Jan 05 2012 Jon Masters <jcm@jonmasters.org> - 3-1
|
||||
- Update to latest upstream (adds new depmod replacement utility)
|
||||
- For the moment, use the "kmod" utility to test the various functions
|
||||
|
||||
* Fri Dec 23 2011 Jon Masters <jcm@jonmasters.org> - 2-6
|
||||
- Update kmod-2-with-rootlibdir patch with rebuild automake files
|
||||
|
||||
* Fri Dec 23 2011 Jon Masters <jcm@jonmasters.org> - 2-5
|
||||
- Initial build for Fedora following package import
|
||||
|
||||
* Thu Dec 22 2011 Jon Masters <jcm@jonmasters.org> - 2-4
|
||||
- There is no generic macro for non-multilib "/lib", hardcode like others
|
||||
|
||||
* Thu Dec 22 2011 Jon Masters <jcm@jonmasters.org> - 2-3
|
||||
- Update package incorporating fixes from initial review feedback
|
||||
- Cleaups to SPEC, rpath, documentation, library and binary locations
|
||||
|
||||
* Thu Dec 22 2011 Jon Masters <jcm@jonmasters.org> - 2-2
|
||||
- Update package for posting to wider test audience (initial review submitted)
|
||||
|
||||
* Thu Dec 22 2011 Jon Masters <jcm@jonmasters.org> - 2-1
|
||||
- Initial Fedora package for module-init-tools replacement (kmod) library
|
1
sources
Normal file
1
sources
Normal file
@ -0,0 +1 @@
|
||||
SHA512 (kmod-27.tar.xz) = e0513094935333fca1fb4c3e3493b232507a579ab00a6457cc9ed3e928363d05aad80634fb65a8287a336bf9895194c7be8ddc41bb088a6c2cca44fc1bfbdb6c
|
46
tests/libkmod/Makefile
Normal file
46
tests/libkmod/Makefile
Normal file
@ -0,0 +1,46 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1+
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
#
|
||||
# Makefile of /CoreOS/libkmod
|
||||
# Description: Test if libkmod working ok
|
||||
# Author: Susant Sahani<susant@redhat.com>
|
||||
#
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
export TEST=/CoreOS/libkmod
|
||||
export TESTVERSION=1.0
|
||||
|
||||
OBJS = test-libkmod.c
|
||||
CFLAG = -Wall -g3
|
||||
CC = gcc
|
||||
LIBS = -lkmod -lcmocka
|
||||
|
||||
test-libkmod:${OBJ}
|
||||
${CC} ${CFLAGS} ${INCLUDES} -o $@ ${OBJS} ${LIBS}
|
||||
|
||||
run: test-libkmod
|
||||
./runtest.sh
|
||||
clean:
|
||||
-rm -f test-libkmod
|
||||
|
||||
.c.o:
|
||||
${CC} ${CFLAGS} ${INCLUDES} -c $<
|
||||
|
||||
CC = gcc
|
||||
|
||||
include /usr/share/rhts/lib/rhts-make.include
|
||||
$(METADATA): Makefile
|
||||
@echo "Owner: Susant Sahani<susant@redhat.com>" > $(METADATA)
|
||||
@echo "Name: $(TEST)" >> $(METADATA)
|
||||
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
||||
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
||||
@echo "Description: Test libkmod works ok" >> $(METADATA)
|
||||
@echo "Type: Sanity" >> $(METADATA)
|
||||
@echo "TestTime: 5m" >> $(METADATA)
|
||||
@echo "RunFor: libkmod" >> $(METADATA)
|
||||
@echo "Requires: libkmod libkmod-devel" >> $(METADATA)
|
||||
@echo "Priority: Normal" >> $(METADATA)
|
||||
@echo "License: GPLv2" >> $(METADATA)
|
||||
@echo "Confidential: no" >> $(METADATA)
|
||||
@echo "Destructive: no" >> $(METADATA)
|
||||
@echo "Releases: -Fedora 29" >> $(METADATA)
|
||||
rhts-lint $(METADATA)
|
36
tests/libkmod/runtest.sh
Executable file
36
tests/libkmod/runtest.sh
Executable file
@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: LGPL-2.1+
|
||||
# ~~~
|
||||
# runtest.sh of libkmod
|
||||
# Description: Tests for libkmod.
|
||||
#
|
||||
# Author: Susant Sahani <susant@redhat.com>
|
||||
# Copyright (c) 2018 Red Hat, Inc.
|
||||
# ~~~
|
||||
|
||||
# Include Beaker environment
|
||||
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
||||
|
||||
PACKAGE="kmod-devel"
|
||||
IPIP="/usr/lib/modules/$(uname -r)/kernel/net/ipv4/ipip.ko.xz"
|
||||
|
||||
rlJournalStart
|
||||
rlPhaseStartSetup
|
||||
rlAssertRpm $PACKAGE
|
||||
rlAssertExists "$IPIP"
|
||||
rlRun "cp test-libkmod /usr/bin/"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartTest
|
||||
rlLog "Starting libkmod tests ..."
|
||||
rlRun "/usr/bin/test-libkmod"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartCleanup
|
||||
rlRun "rm /usr/bin/test-libkmod"
|
||||
rlLog "libkmod tests done"
|
||||
rlPhaseEnd
|
||||
rlJournalPrintText
|
||||
rlJournalEnd
|
||||
|
||||
rlGetTestState
|
79
tests/libkmod/test-libkmod.c
Normal file
79
tests/libkmod/test-libkmod.c
Normal file
@ -0,0 +1,79 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1+
|
||||
# ~~~
|
||||
# Description: Tests libkmod
|
||||
#
|
||||
# Author: Susant Sahani <susant@redhat.com>
|
||||
# Copyright (c) 2018 Red Hat, Inc.
|
||||
# ~~~
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <libkmod.h>
|
||||
#include <setjmp.h>
|
||||
#include <inttypes.h>
|
||||
#include <cmocka.h>
|
||||
|
||||
static int load_module(void **state) {
|
||||
struct kmod_list *list = NULL;
|
||||
struct kmod_ctx *ctx = NULL;
|
||||
struct kmod_list *l;
|
||||
int r;
|
||||
|
||||
assert_non_null((ctx = kmod_new(NULL, NULL)));
|
||||
assert_return_code(kmod_module_new_from_lookup(ctx, "ipip", &list), 0);
|
||||
|
||||
kmod_list_foreach(l, list) {
|
||||
struct kmod_module *mod = NULL;
|
||||
|
||||
mod = kmod_module_get_module(l);
|
||||
assert_non_null(mod);
|
||||
|
||||
assert_return_code(kmod_module_probe_insert_module(mod, 0, NULL, NULL, NULL, NULL), 0);
|
||||
}
|
||||
|
||||
free(ctx);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int remove_module(void **state) {
|
||||
struct kmod_list *list = NULL;
|
||||
struct kmod_ctx *ctx = NULL;
|
||||
struct kmod_list *l;
|
||||
int r;
|
||||
|
||||
assert_non_null((ctx = kmod_new(NULL, NULL)));
|
||||
assert_return_code(kmod_module_new_from_lookup(ctx, "ipip", &list), 0);
|
||||
|
||||
kmod_list_foreach(l, list) {
|
||||
struct kmod_module *mod = NULL;
|
||||
|
||||
mod = kmod_module_get_module(l);
|
||||
assert_non_null(mod);
|
||||
|
||||
assert_return_code(kmod_module_remove_module(mod, 0), 0);
|
||||
}
|
||||
|
||||
free(ctx);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void test_load_module(void **state) {
|
||||
load_module(NULL);
|
||||
}
|
||||
|
||||
void test_remove_module(void **state) {
|
||||
remove_module(NULL);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
const struct CMUnitTest libmod_tests[] = {
|
||||
cmocka_unit_test_teardown(test_load_module, remove_module),
|
||||
cmocka_unit_test_setup(test_remove_module, load_module),
|
||||
};
|
||||
|
||||
return cmocka_run_group_tests(libmod_tests, NULL, NULL);
|
||||
}
|
79
tests/sanity/Makefile
Normal file
79
tests/sanity/Makefile
Normal file
@ -0,0 +1,79 @@
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
#
|
||||
# Makefile of general/kmod/sanity
|
||||
# Description: kmod test
|
||||
#
|
||||
# 2016-07-31
|
||||
# Author: Chunyu Hu <chuhu@redhat.com>
|
||||
#
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
TENV=_env
|
||||
ifeq ($(PKG_TOP_DIR),)
|
||||
export PKG_TOP_DIR := $(shell p=$$PWD; while :; do \
|
||||
[ -e $$p/env.mk -o -z "$$p" ] && { echo $$p; break; }; p=$${p%/*}; done)
|
||||
export _TOP_DIR := $(shell p=$$PWD; while :; do \
|
||||
[ -d $$p/.git -o -z "$$p" ] && { echo $$p; break; }; p=$${p%/*}; done)
|
||||
-include $(PKG_TOP_DIR)/env.mk
|
||||
endif
|
||||
include $(TENV)
|
||||
ifeq ($(_TOP_DIR),)
|
||||
_TOP_DIR=/mnt/tests/$(TOPLEVEL_NAMESPACE)
|
||||
endif
|
||||
|
||||
export TESTVERSION=1.0
|
||||
|
||||
BUILT_FILES=
|
||||
|
||||
FILES=$(TENV) $(METADATA) _env runtest.sh Makefile PURPOSE lib.sh
|
||||
|
||||
.PHONY: all install download clean
|
||||
|
||||
run: $(FILES) build
|
||||
( set +o posix; . /usr/bin/rhts_environment.sh; \
|
||||
. /usr/share/beakerlib/beakerlib.sh; \
|
||||
. runtest.sh )
|
||||
|
||||
build: $(BUILT_FILES)
|
||||
test -x runtest.sh || chmod a+x runtest.sh
|
||||
|
||||
clean:
|
||||
rm -fr *~ $(BUILT_FILES)
|
||||
|
||||
include /usr/share/rhts/lib/rhts-make.include
|
||||
|
||||
$(METADATA): Makefile
|
||||
@echo "Owner: Chunyu Hu <chuhu@redhat.com>" > $(METADATA)
|
||||
@echo "Name: $(TEST)" >> $(METADATA)
|
||||
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
||||
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
||||
@echo "Description: kmod kernel module check from kernel modules tools">> $(METADATA)
|
||||
@echo "Type: Regression" >> $(METADATA)
|
||||
@echo "TestTime: 1h" >> $(METADATA)
|
||||
@echo "RunFor: kernel" >> $(METADATA)
|
||||
@echo "Requires: kernel" >> $(METADATA)
|
||||
@echo "Requires: sysstat perf trace-cmd" >> $(METADATA)
|
||||
@echo "Requires: $(PACKAGE_NAME) python rpm wget" >> $(METADATA)
|
||||
@echo "Priority: Normal" >> $(METADATA)
|
||||
@echo "License: GPLv2" >> $(METADATA)
|
||||
@echo "Confidential: no" >> $(METADATA)
|
||||
@echo "Destructive: no" >> $(METADATA)
|
||||
rhts-lint $(METADATA)
|
4
tests/sanity/PURPOSE
Normal file
4
tests/sanity/PURPOSE
Normal file
@ -0,0 +1,4 @@
|
||||
Defaults to testing currently running kernel modules tools on all architectures.
|
||||
|
||||
The test runs on any architecture, check normal kernel modules and compressed kernel modules for sanity
|
||||
|
8
tests/sanity/_env
Normal file
8
tests/sanity/_env
Normal file
@ -0,0 +1,8 @@
|
||||
#This file was generated automatically,do not manually change it.
|
||||
export TOPLEVEL_NAMESPACE=kernel
|
||||
export PKG_NAMESPACE=kernel/general
|
||||
export RELATIVE_PATH=kmod/sanity
|
||||
export PACKAGE=general
|
||||
export PACKAGE_NAME=general
|
||||
export PKG_LIST=
|
||||
export TEST=/kernel/general/kmod/sanity
|
258
tests/sanity/lib.sh
Executable file
258
tests/sanity/lib.sh
Executable file
@ -0,0 +1,258 @@
|
||||
#!/bin/bash
|
||||
|
||||
dir_extra=/usr/lib/modules/$(uname -r)/extra
|
||||
dir_updates=/usr/lib/modules/$(uname -r)/updates
|
||||
dir_weak_updates=/usr/lib/modules/$(uname -r)/weak-updates
|
||||
kmods=(base kmod_test_force kmod_test)
|
||||
|
||||
function kmod_log_warn()
|
||||
{
|
||||
echo "WARN: $*"
|
||||
}
|
||||
|
||||
|
||||
function kmod_log_pass()
|
||||
{
|
||||
echo "PASS: $*"
|
||||
}
|
||||
|
||||
function kmod_log_fail()
|
||||
{
|
||||
echo "FAIL: $*"
|
||||
}
|
||||
|
||||
function kmod_log_info()
|
||||
{
|
||||
echo "INFO: $*"
|
||||
}
|
||||
|
||||
function kmod_log_err()
|
||||
{
|
||||
echo "ERR: $*"
|
||||
}
|
||||
|
||||
function kmod_verify_exist()
|
||||
{
|
||||
local files=$*
|
||||
local ret=0
|
||||
local msg=0
|
||||
local f=
|
||||
for f in $files; do
|
||||
if ! test -f $f; then
|
||||
ret=$((ret + 1))
|
||||
continue
|
||||
fi
|
||||
done
|
||||
return $ret
|
||||
}
|
||||
|
||||
function kmod_verify_loaded()
|
||||
{
|
||||
local kmods=$*
|
||||
local ret=$?
|
||||
for kmod in $kmods; do
|
||||
lsmod | grep -w ${kmod/.ko/}
|
||||
if [ $? -ne 0 ]; then
|
||||
ret=$((ret+1))
|
||||
continue
|
||||
fi
|
||||
done
|
||||
return $ret
|
||||
}
|
||||
|
||||
# tainted should be shown
|
||||
function kmod_verify_dmesg()
|
||||
{
|
||||
local str="$1"
|
||||
dmesg | grep -i "$str"
|
||||
return $?
|
||||
}
|
||||
|
||||
function kmod_verify_tainted()
|
||||
{
|
||||
local kmod=$1
|
||||
shift
|
||||
local taint_expect=$*
|
||||
local ret=0
|
||||
local checker=./parse_taint.sh
|
||||
local tainted=$(cat /proc/sys/kernel/tainted)
|
||||
kmod_log_info "Kernel taint value: $tainted"
|
||||
local flag=
|
||||
for flag in $taint_expect; do
|
||||
$checker $tainted | grep -we $flag || ret=$((ret + 1))
|
||||
done
|
||||
return $ret
|
||||
}
|
||||
|
||||
function kmod_verify_tainted_module()
|
||||
{
|
||||
local kmod=$1
|
||||
shift
|
||||
local taint_expect="$*"
|
||||
local ret=0
|
||||
|
||||
if ! test -f /sys/module/$kmod/taint; then
|
||||
kmod_log_info "Kmod taint value on module $kmod not supported"
|
||||
kmod_log_info "$(ls /sys/module/$kmod/)"
|
||||
return 0
|
||||
fi
|
||||
|
||||
local kmod_tainted=$(cat /sys/module/$kmod/taint)
|
||||
ret=$(( $ret + 1 ))
|
||||
kmod_log_info "Kmod taint value: $kmod_tainted"
|
||||
|
||||
local flag=
|
||||
local grep_exec="grep"
|
||||
for flag in $*; do
|
||||
grep_exec+=" -e $flag"
|
||||
done
|
||||
|
||||
echo "$kmod_tainted" | $grep_exec
|
||||
ret=$?
|
||||
return $ret
|
||||
}
|
||||
|
||||
function kmod_check_result()
|
||||
{
|
||||
local opt=$1
|
||||
shift 1
|
||||
local dir=$1
|
||||
shift 1
|
||||
local files=$*
|
||||
case $opt in
|
||||
compile)
|
||||
for f in $files; do
|
||||
if kmod_verify_exist $dir/$f; then
|
||||
kmod_log_pass "File exist: $dir/$f"
|
||||
else
|
||||
kmod_log_fail "File does not exist: $dir/$f"
|
||||
return 1
|
||||
fi
|
||||
done
|
||||
;;
|
||||
load)
|
||||
for f in $files; do
|
||||
if kmod_verify_loaded $f; then
|
||||
kmod_log_fail $f not loaded
|
||||
return 1
|
||||
else
|
||||
kmod_log_pass $f loaded
|
||||
fi
|
||||
done
|
||||
;;
|
||||
unload)
|
||||
for f in $files; do
|
||||
if ! kmod_verify_loaded $f; then
|
||||
kmod_log_fail $f unloaded
|
||||
return 1
|
||||
else
|
||||
kmod_log_pass $f not loaded
|
||||
fi
|
||||
done
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
return 0
|
||||
}
|
||||
|
||||
# Locate the compiled kmods into several dirs for different
|
||||
# tests.
|
||||
function kmod_locate_extra()
|
||||
{
|
||||
local ret=0
|
||||
if ! test -d $dir_extra; then
|
||||
kmod_log_warn "$dir_extra does not exist."
|
||||
return 1
|
||||
fi
|
||||
local f=
|
||||
for f in $*; do
|
||||
cp -f $f $dir_extra || ret=$((ret + 1))
|
||||
done
|
||||
depmod || ret=$((ret+1))
|
||||
return $ret
|
||||
}
|
||||
|
||||
function kmod_locate_updates()
|
||||
{
|
||||
local ret=0
|
||||
if ! test -d $dir_updates; then
|
||||
kmod_log_warn "$dir_updates does not exist."
|
||||
return 1
|
||||
fi
|
||||
for f in $*; do
|
||||
cp -f $f $dir_updates || ret=$((ret + 1))
|
||||
done
|
||||
depmod || ret=$((ret+1))
|
||||
return $ret
|
||||
}
|
||||
|
||||
function kmod_locate_weak_updates()
|
||||
{
|
||||
local ret=0
|
||||
if ! test -d $dir_weak_updates; then
|
||||
kmod_log_warn "$dir_weak_updates does not exist."
|
||||
return 1
|
||||
fi
|
||||
for f in $*; do
|
||||
cp -f $f $dir_weak_updates || ret=$((ret + 1))
|
||||
done
|
||||
depmod || ret=$((ret+1))
|
||||
return $ret
|
||||
}
|
||||
|
||||
function kmod_cleanup_all()
|
||||
{
|
||||
local ret=$?
|
||||
for ko in ${kmod[*]}; do
|
||||
test -f $dir_extra/${ko}.ko && rm -r $dir_extra/${ko}.ko
|
||||
test -f $dir_weak_updates/${ko}.ko && rm -r $dir_weak_updates/${ko}.ko
|
||||
test -f $dir_updates/${ko}.ko && rm -r $dir_extra/${ko}.ko
|
||||
done
|
||||
}
|
||||
|
||||
# The kmods should be loaded now.
|
||||
function kmod_check_all_loaded()
|
||||
{
|
||||
local ret=$?
|
||||
lsmod | grep base -w
|
||||
ret=$(($ret + $?))
|
||||
lsmod | grep -w kmod_test_dependency
|
||||
ret=$(($ret + $?))
|
||||
lsmod | grep -w kmod_test_force
|
||||
ret=$(($ret + $?))
|
||||
return $ret
|
||||
}
|
||||
|
||||
function kmod_unload_all()
|
||||
{
|
||||
local ret=0
|
||||
lsmod | grep -w kmod_test_force && rmmod kmod_test_force
|
||||
lsmod | grep -w base && rmmod base
|
||||
! lsmod | grep -w base
|
||||
ret=$(($ret | $?))
|
||||
! lsmod | grep -w kmod_test_force
|
||||
ret=$(($ret | $?))
|
||||
return $ret
|
||||
}
|
||||
|
||||
|
||||
function kmod_load_all()
|
||||
{
|
||||
local kmod=
|
||||
kmod_unload_all || return $?
|
||||
for kmod in $*; do
|
||||
modprobe $kmod || return $?
|
||||
done
|
||||
}
|
||||
|
||||
function kmod_load_all_force()
|
||||
{
|
||||
local kmod=
|
||||
kmod_unload_all || return $?
|
||||
for kmod in $*; do
|
||||
modprobe -f $kmod || return $?
|
||||
dmesg | tail -n 10
|
||||
done
|
||||
}
|
||||
|
70
tests/sanity/parse_taint.sh
Executable file
70
tests/sanity/parse_taint.sh
Executable file
@ -0,0 +1,70 @@
|
||||
# /bin/bash
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
# Copyright (c) 2015 Red Hat, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# Author: Chunyu Hu <chuhu@redhat.com>
|
||||
#
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
taint_mask=(
|
||||
[0]="P (G=Gnu)TAINT_PROPRIETARY_MODULE"
|
||||
[1]="F TAINT_FORCED_MODULE"
|
||||
[2]="S TAINT_UNSAFE_SMP"
|
||||
[3]="R TAINT_FORCED_RMMOD"
|
||||
[4]="M TAINT_MACHINE_CHECK"
|
||||
[5]="B TAINT_BAD_PAGE"
|
||||
[6]="U TAINT_USER"
|
||||
[7]="D TAINT_DIE"
|
||||
[8]="A TAINT_OVERRIDDEN_ACPI_TABLE"
|
||||
[9]="W TAINT_WARN"
|
||||
[10]="C TAINT_CRAP"
|
||||
[11]="I TAINT_FIRMWARE_WORKAROUND"
|
||||
[12]="O TAINT_OOT_MODULE [RHEL7 ONLY]"
|
||||
[13]="E TAINT_UNSIGNED_MODULE"
|
||||
[14]="L TAINT_SOFTLOCKUP"
|
||||
[15]="K TAINT_LIVEPATCH"
|
||||
[16]="? TAINT_16"
|
||||
[17]="? TAINT_17"
|
||||
[18]="? TAINT_18"
|
||||
[19]="? TAINT_19"
|
||||
[20]="? TAINT_20"
|
||||
[21]="? TAINT_21"
|
||||
[22]="? TAINT_22"
|
||||
[23]="? TAINT_23"
|
||||
[24]="? TAINT_24"
|
||||
[25]="? TAINT_25"
|
||||
[26]="? TAINT_26"
|
||||
[27]="? TAINT_BIT_BY_ZOMBIE"
|
||||
[28]="H TAINT_HARDWARE_UNSUPPORTED"
|
||||
[29]="T TAINT_TECH_PREVIEW"
|
||||
[30]="? TAINT_RESERVED30"
|
||||
[31]="? TAINT_RESERVED31"
|
||||
)
|
||||
|
||||
function parse_taint(){
|
||||
for mask in ${!taint_mask[*]};do
|
||||
if (( ((1<<mask)) & taint_val )); then
|
||||
echo "bit$mask: $((1<<mask)) ${taint_mask[$mask]}" |
|
||||
awk '{printf "%-7s %-13s %-5s %s\n", $1 ,$2, $3, $4, $5, $6}'
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
echo "Input: $taint_val"
|
||||
taint_val=${1:-$(cat /proc/sys/kernel/tainted)}
|
||||
parse_taint "$taint_val" | awk 'BEGIN{sum=0}{sum+=$2;print}END{printf "Sum: ";print sum}'
|
||||
|
134
tests/sanity/runtest.sh
Executable file
134
tests/sanity/runtest.sh
Executable file
@ -0,0 +1,134 @@
|
||||
#!/bin/bash
|
||||
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
#
|
||||
# runtest.sh of kmod/sanity
|
||||
# Description: Checking the basic function of kmod
|
||||
# Author: Shaohui Deng <shdeng@redhat.com>
|
||||
# Author: Chunyu Hu <chuhu@redhat.com>
|
||||
# Update: Ziqian SUN <zsun@redhat.com>
|
||||
#
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
#
|
||||
# Copyright (c) 2015 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
|
||||
. lib.sh
|
||||
|
||||
PACKAGE="kmod"
|
||||
if [ -z $TESTARGS ]; then
|
||||
export TESTARGS=$(rpm -q --queryformat '%{version}-%{release}\n' -qf /boot/config-$(uname -r))
|
||||
fi
|
||||
name=kernel
|
||||
version=$(echo $TESTARGS | awk 'BEGIN {FS="-"} {print $1 }')
|
||||
release=$(echo $TESTARGS | awk 'BEGIN {FS="-"} {print $2 }')
|
||||
DEBUG=0
|
||||
result=FAIL
|
||||
FAIL=0
|
||||
PASS=0
|
||||
arch=`uname -m`
|
||||
|
||||
export TESTS=${TESTS:-kmod_load_insmod kmod_load_modprobe kmod_modinfo}
|
||||
|
||||
# Functions
|
||||
function kmod_load_insmod()
|
||||
{
|
||||
local m
|
||||
for m in ${existed_unloaded}; do
|
||||
#local m_name=$(basename ${m//.ko}) won't work for compressed kmod
|
||||
local m_name=$(basename ${m} | sed "s/.ko//;s/.xz//;s/.gz//")
|
||||
rlRun "insmod $mod_path/$m"
|
||||
rlRun "lsmod | grep ${m_name}"
|
||||
rlRun "rmmod ${m_name}"
|
||||
rlRun "lsmod | grep ${m_name}" 1-255
|
||||
done
|
||||
}
|
||||
|
||||
function kmod_load_modprobe()
|
||||
{
|
||||
rlRun "modprobe tun"
|
||||
rlRun "modprobe -r tun"
|
||||
}
|
||||
|
||||
function kmod_modinfo()
|
||||
{
|
||||
for m in ${existed_unloaded}; do
|
||||
local m_name=$(basename ${m} | sed "s/.ko//;s/.xz//;s/.gz//")
|
||||
rlRun "modinfo -l $m_name"
|
||||
done
|
||||
}
|
||||
|
||||
RunKmod() {
|
||||
local tests
|
||||
for tests in $@; do
|
||||
rlPhaseStartTest $tests
|
||||
case $tests in
|
||||
load_unload_kernel_modules)
|
||||
load_unload_kernl_modules_func
|
||||
;;
|
||||
load_unload_compressed_kernel_modules)
|
||||
load_unload_compressed_kernel_module_func
|
||||
;;
|
||||
*)
|
||||
$tests
|
||||
;;
|
||||
esac
|
||||
rlPhaseEnd
|
||||
done
|
||||
}
|
||||
|
||||
rlJournalStart
|
||||
rlPhaseStartSetup
|
||||
mod_list="/kernel/net/ipv4/udp_tunnel.ko /kernel/net/wireless/lib80211.ko /kernel/net/wireless/ath/ath9k/ath9k.ko /kernel/net/ipv4/udp_tunnel.ko.xz /kernel/net/wireless/lib80211.ko.xz /kernel/net/wireless/ath/ath9k/ath9k.ko.xz"
|
||||
if [[ -L /lib && -d /lib ]]; then
|
||||
mod_path=/usr/lib/modules/`uname -r`/
|
||||
else
|
||||
mod_path=/lib/modules/`uname -r`/
|
||||
fi
|
||||
existed_unloaded=""
|
||||
local m
|
||||
for m in ${mod_list}; do
|
||||
test -f $mod_path/$m && existed_unloaded+="$m "
|
||||
done
|
||||
[ -z "$existed_unloaded" ] && rlDie "There is no right module path to use : $mod_list"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartTest
|
||||
RunKmod $TESTS
|
||||
rlPhaseEnd
|
||||
|
||||
if ! (lsmod | grep gre)
|
||||
then
|
||||
wparam="gre"
|
||||
elif ! (lsmod | grep uwb)
|
||||
then
|
||||
wparam="uwb"
|
||||
else
|
||||
wparam="atm"
|
||||
fi
|
||||
rlPhaseStartTest "Modprobe with wrong parameter"
|
||||
rlRun -l "modprobe $wparam BADPARAM=this_should_fail" 0-1
|
||||
rlRun -l "dmesg | grep -i 'Unknown parameter' | grep 'BADPARAM' | grep '$wparam'"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartCleanup
|
||||
rlPhaseEnd
|
||||
|
||||
rlJournalPrintText
|
||||
rlJournalEnd
|
18
tests/tests.yml
Normal file
18
tests/tests.yml
Normal file
@ -0,0 +1,18 @@
|
||||
- hosts: localhost
|
||||
tags:
|
||||
- classic
|
||||
roles:
|
||||
- role: standard-test-beakerlib
|
||||
tests:
|
||||
- sanity
|
||||
- libkmod
|
||||
required_packages:
|
||||
- kernel
|
||||
- perf
|
||||
- sysstat
|
||||
- trace-cmd
|
||||
- kmod
|
||||
- kmod-devel
|
||||
- gcc
|
||||
- libcmocka
|
||||
- libcmocka-devel
|
1199
weak-modules
Normal file
1199
weak-modules
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user