Compare commits

...

10 Commits

Author SHA1 Message Date
Čestmír Kalina 1c1b80bb32 Update to 1.8.2
Related: rhbz#2110413

Signed-off-by: Čestmír Kalina <ckalina@redhat.com>
2022-12-05 19:21:30 +01:00
Čestmír Kalina fc6be54b1b Update to 1.8.1
Related: rhbz#2044219

Signed-off-by: Čestmír Kalina <ckalina@redhat.com>
2022-05-02 12:38:06 +02:00
Čestmír Kalina 00ab0f7850 Update to 1.6.1
Related: rhbz#2017065

Signed-off-by: Čestmír Kalina <ckalina@redhat.com>
2021-11-26 14:23:53 +01:00
Mohan Boddu c3b8660d3c Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
Signed-off-by: Mohan Boddu <mboddu@redhat.com>
2021-08-10 00:53:59 +00:00
Čestmír Kalina cd60cc4deb Upgrade to smc-tools 1.6.0
Resolves: #1869550 Upgrade smc-tools to latest version
Related: #1869743
Related: #1869747

Signed-off-by: Čestmír Kalina <ckalina@redhat.com>
2021-07-07 20:47:24 +02:00
Ping Fang c46f31a62b Initial commit to enable RHEL-9 gating for smc-tools
Resolves: rhbz#1972137

Signed-off-by: Ping Fang <pifang@redhat.com>
2021-06-15 18:36:12 +08:00
Mohan Boddu 71d403bf13 - Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
Signed-off-by: Mohan Boddu <mboddu@redhat.com>
2021-04-16 05:40:28 +00:00
DistroBaker a775f8c10a Merged update from upstream sources
This is an automated DistroBaker update from upstream sources.
If you do not know what this is about or would like to opt out,
contact the OSCI team.

Source: https://src.fedoraproject.org/rpms/smc-tools.git#2a796260f7611b3209503d90e8adc18aa3fdee4e
2021-03-21 21:51:30 +00:00
DistroBaker d50d988716 Merged update from upstream sources
This is an automated DistroBaker update from upstream sources.
If you do not know what this is about or would like to opt out,
contact the OSCI team.

Source: https://src.fedoraproject.org/rpms/smc-tools.git#f3ff2bef9fbb97ed170ef13e7966563d842d1cce
2021-02-03 05:11:06 +00:00
Troy Dawson d9f68fda08 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/smc-tools#01bf3e49e6010c0e18496e7238a3ce0916e117ed
2020-10-15 09:44:13 -07:00
11 changed files with 598 additions and 0 deletions

4
.gitignore vendored
View File

@ -0,0 +1,4 @@
/smc-tools-*.tar.gz
/1.6.1.tar.gz
/1.8.1.tar.gz
/1.8.2.tar.gz

3
README.md Normal file
View File

@ -0,0 +1,3 @@
# smc-tools
The smc-tools package

7
gating.yaml Normal file
View File

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

132
smc-tools.spec Normal file
View File

@ -0,0 +1,132 @@
Name: smc-tools
Version: 1.8.2
Release: 1%{?dist}
Summary: Shared Memory Communication Tools
License: EPL-1.0
URL: https://github.com/ibm-s390-linux/smc-tools
Source0: https://github.com/ibm-s390-linux/%{name}/archive/refs/tags/%{version}.tar.gz
BuildRequires: make
BuildRequires: gcc
BuildRequires: libnl3-devel
BuildRequires: bash-completion
%ifarch s390 s390x
# for smc_chk
Requires: python3
Requires: man
%endif
%description
The Shared Memory Communication Tools (smc-tools) package enables usage of SMC
sockets in Linux.
%prep
%autosetup
%build
%ifarch ppc64le
# see arch/powerpc/include/uapi/asm/types.h
%global optflags %optflags -D__SANE_USERSPACE_TYPES__
%endif
%set_build_flags
%make_build
%install
%make_install V=1
%files
%license LICENSE
%doc README.md
%{_bindir}/smcd
%{_bindir}/smcr
%{_bindir}/smc_dbg
%{_bindir}/smc_pnet
%{_bindir}/smc_run
%{_bindir}/smcss
%{_libdir}/libsmc-preload.so*
%{_mandir}/man7/af_smc.7*
%{_mandir}/man8/smcd*.8*
%{_mandir}/man8/smcr*.8*
%{_mandir}/man8/smc_pnet.8*
%{_mandir}/man8/smc_run.8*
%{_mandir}/man8/smcss.8*
%ifarch s390 s390x
%{_bindir}/smc_chk
%{_bindir}/smc_rnics
%{_mandir}/man8/smc_chk.8*
%{_mandir}/man8/smc_rnics.8*
%endif
%{_datadir}/bash-completion/
%changelog
* Mon Dec 05 2022 Čestmír Kalina <ckalina@redhat.com> - 1.8.2-1
- Resolves: #2110413 Upgrade smc-tools to latest version
* Mon May 02 2022 Čestmír Kalina <ckalina@redhat.com> - 1.8.1-1
- Resolves: #2044219 Update smc-tools to latest version
* Fri Nov 26 2021 Čestmír Kalina <ckalina@redhat.com> - 1.6.1-1
- Resolves: #2017065 Update smc-tools to 1.6.1
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 1.6.0-2
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Wed Jul 07 2021 Čestmír Kalina <ckalina@redhat.com> - 1.6.0-1
- Resolves: #1869550 Upgrade smc-tools to latest version
- Related: #1869743
- Related: #1869747
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 1.5.0-2
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Wed Mar 17 2021 Dan Horák <dan@danny.cz> - 1.5.0-1
- update to 1.5.0
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Sep 23 2020 Dan Horák <dan@danny.cz> - 1.3.1-1
- update to 1.3.1
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu Feb 28 2019 Dan Horák <dan@danny.cz> - 1.2.0-1
- update to 1.2.0
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Mon Jul 09 2018 Dan Horák <dan@danny.cz> - 1.1.0-1
- update to 1.1.0
* Mon Apr 16 2018 Dan Horák <dan@danny.cz> - 1.0.0-4
- fix LDFLAGS injection (#1567902)
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Wed Jan 10 2018 Dan Horák <dan@danny.cz> - 1.0.0-2
- use make macro
- comment patches
- use distro LDFLAGS in build
* Mon Jan 8 2018 Dan Horák <dan@danny.cz> - 1.0.0-1
- initial Fedora version

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (1.8.2.tar.gz) = ffd981141deed5b7a7fde228dcf185e688c1656a7a0fedc103a2cc950a45293031aea0ebf907b9fc4f60707cadf40ea682f63ab350d3de5acc778afd9c791e33

90
tests/sanity/Makefile Normal file
View File

@ -0,0 +1,90 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of smc-tools/sanity
# Description: smc-tools test
#
# 2019-04-01
# Author: Čestmír Kalina <ckalina@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2019 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) Makefile common-tests.sh runtest.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: Čestmír Kalina <ckalina@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: smc-tools tests">> $(METADATA)
@echo "Type: Regression" >> $(METADATA)
@echo "TestTime: 1h" >> $(METADATA)
@echo "RunFor: smc-tools" >> $(METADATA)
@echo "Requires: bash" >> $(METADATA)
@echo "Requires: coreutils" >> $(METADATA)
@echo "Requires: kernel" >> $(METADATA)
@echo "Requires: kmod" >> $(METADATA)
@echo "Requires: kernel-devel" >> $(METADATA)
@echo "Requires: kernel-modules" >> $(METADATA)
@echo "Requires: kernel-abi-whitelists" >> $(METADATA)
@echo "Requires: xz" >> $(METADATA)
@echo "Requires: bzip2" >> $(METADATA)
@echo "Requires: gzip" >> $(METADATA)
@echo "ExclusiveArch: s390x" >> $(METADATA)
@echo "Requires: $(PACKAGE_NAME) rpm wget iputils" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
rhts-lint $(METADATA)

9
tests/sanity/_env Normal file
View File

@ -0,0 +1,9 @@
#This file was generated automatically,do not manually change it.
export TOPLEVEL_NAMESPACE=kernel
export PKG_NAMESPACE=kernel/general
export RELATIVE_PATH=smc-tools/sanity
export PACKAGE=general
export PACKAGE_NAME=general
export PKG_LIST=
export TEST=/kernel/general/smc-tools/sanity

View File

@ -0,0 +1,148 @@
if test -z "$MANUAL"
then
export COLOR_NC=
export COLOR_WHITE=
export COLOR_BLACK=
export COLOR_BLUE=
export COLOR_LIGHT_BLUE=
export COLOR_GREEN=
export COLOR_LIGHT_GREEN=
export COLOR_CYAN=
export COLOR_LIGHT_CYAN=
export COLOR_RED=
export COLOR_LIGHT_RED=
export COLOR_PURPLE=
export COLOR_LIGHT_PURPLE=
export COLOR_BROWN=
export COLOR_YELLOW=
export COLOR_GRAY=
export COLOR_LIGHT_GRAY=
else
export COLOR_NC='\e[0m'
export COLOR_WHITE='\e[1;37m'
export COLOR_BLACK='\e[0;30m'
export COLOR_BLUE='\e[0;34m'
export COLOR_LIGHT_BLUE='\e[1;34m'
export COLOR_GREEN='\e[0;32m'
export COLOR_LIGHT_GREEN='\e[1;32m'
export COLOR_CYAN='\e[0;36m'
export COLOR_LIGHT_CYAN='\e[1;36m'
export COLOR_RED='\e[0;31m'
export COLOR_LIGHT_RED='\e[1;31m'
export COLOR_PURPLE='\e[0;35m'
export COLOR_LIGHT_PURPLE='\e[1;35m'
export COLOR_BROWN='\e[0;33m'
export COLOR_YELLOW='\e[1;33m'
export COLOR_GRAY='\e[0;30m'
export COLOR_LIGHT_GRAY='\e[0;37m'
fi
function pass()
{
if ! test -z "$MANUAL"
then
echo -en " $COLOR_GRAY$(printf "%0.s-" {1..35})"
echo -en "[ ${COLOR_GREEN}PASS ]"
echo -e "$COLOR_GRAY$(printf "%0.s-" {1..36})$COLOR_NC"
else
rlPass
fi
}
function fail()
{
if ! test -z "$MANUAL"
then
echo -en " $COLOR_GRAY$(printf "%0.s-" {1..35})"
echo -en "[ ${COLOR_RED}FAIL ]"
echo -e "$COLOR_GRAY$(printf "%0.s-" {1..36})$COLOR_NC"
else
rlFail
fi
}
function print_test_case()
{
if test -z "$MANUAL"
then
return 0
fi
echo
local msg=" $COLOR_GRAY[${COLOR_BLUE}TEST $1$COLOR_GRAY]"
eval msg="\$msg\$(printf "%0.s-" {1..$[80-${#msg}+${#COLOR_BLUE}+2*${#COLOR_GRAY}]})"
echo -e "$msg$COLOR_NC"
}
function print_description()
{
desc=()
eval desc=\(\"\${DESCRIPTION_$1[@]}\"\)
for desc_line in "${desc[@]}"
do
echo " $desc_line"
done
echo
}
#
# Perform a test
#
# $1 test function
#
function run_test()
{
rlPhaseStartTest "$1"
if test $# -eq 0 -o -z $1
then
rlFail "ERROR: Expected test name to be passed to run_test" \
"function." >&2
exit 1
fi
local stdout_log="$2"
local stderr_log="$3"
if test -z $stdout_log -o ! -e $stdout_log
then
rlFail "ERROR: Test inconsistency, STDOUT log file missing or" \
"non-existent." >&2
exit 1
fi
if test -z $stderr_log -o ! -e $stderr_log
then
rlFail "ERROR: Test inconsistency, STDERR log file missing or" \
"non-existent." >&2
exit 1
fi
echo > $stdout_log
echo > $stderr_log
print_test_case "$1"
$1 "$stdout_log" "$stderr_log"
ret=$?
print_description "$1"
if test $ret -eq 0
then
pass
else
fail
echo "STDOUT {"
cat $stdout_log
echo "}"
echo "STDERR {"
cat $stderr_log
echo "}"
return 1
fi
rlPhaseEnd
}

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

@ -0,0 +1,149 @@
#!/usr/bin/env bash
function cleanup()
{
rlPhaseStartCleanup
rm -rf "${TEMPFILES[@]}"
rlPhaseEnd
}
trap cleanup 0 1 9 15
# --- Globals -----------------------------------------------------------------
SCRIPT_ROOT="$(dirname "$(realpath "${BASH_SOURCE[0]}")")"
# A list of temporary files; used by cleanup to delete on signals 0 1 9 15.
TEMPFILES=()
# A list of dependencies to include.
INCLUDES=()
# A list of files containing test definitions.
# These are auto-discovered using test-*.sh pattern.
TESTS_FILES=()
# A list of tests to run.
# These are automatically added by test files.
TESTS=()
# The following can be overriden to force a particular setting.
# RPM_BIN_DIR is not defined
# RPM_DATA_DIR is not defined
# KSC_BIN is not defined
# MOD_PATH is not defined
# MANUAL is not defined
# --- Initialization ----------------------------------------------------------
echo
echo " :: smc-tools Gating for RHEL"
echo
# Requires: restraint-rhts
. /usr/bin/rhts-environment.sh || exit 1
# Requires: beakerlib
. /usr/share/beakerlib/beakerlib.sh || exit 1
INCLUDES+=("$SCRIPT_ROOT/common-tests.sh")
TESTS_FILES+=("$SCRIPT_ROOT/test-"*".sh")
# --- bkr journal -------------------------------------------------------------
rlJournalStart
rlPhaseStartSetup
# --- Load dependencies -------------------------------------------------------
for path in ${INCLUDES[@]} ${TESTS_FILES[@]}
do
if ! test -r $path
then
rlFail "Path \`$path' does not exist or is not readable"
exit 1
fi
source $path && {
rlPass "File \`$(basename "$path")' loaded."
} || {
rlFail "Unable to load \`$path'."
exit 1
}
done
# --- Temporary files ---------------------------------------------------------
echo ":: Initialization: Temporary files."
__stdout_log=$(mktemp -p /tmp smc-tools-test-stdout.XXXXX)
TEMPFILES+=("$__stdout_log")
__stderr_log=$(mktemp -p /tmp smc-tools-test-stderr.XXXXX)
TEMPFILES+=("$__stderr_log")
# --- Evaluate RPM-specific macros --------------------------------------------
# This is required not to hardcode install location should %{_bindir} and
# %{_datadir} be changed.
echo ":: Initialization: Evaluating RPM macros."
if test -z "$RPM_BIN_DIR"
then
RPM_BIN_DIR="$(rpm --eval '%{_bindir}')"
echo " * RPM %{_bindir} determined as: $RPM_BIN_DIR"
fi
if test -z "$RPM_DATA_DIR"
then
RPM_DATA_DIR="$(rpm --eval '%{_datadir}')"
echo " * RPM %{_datadir} determined as: $RPM_DATA_DIR"
fi
if test -z "$RPM_LIB_DIR"
then
RPM_LIB_DIR="$(rpm --eval '%{_libdir}')"
echo " * RPM %{_libdir} determined as: $RPM_LIB_DIR"
fi
# --- Determine scm location --------------------------------------------------
if test -z "$PLD_LD"
then
PLD_LD="$RPM_LIB_DIR/libsmc-preload.so"
echo ":: libsmc-preload.so determined as: $PLD_LD"
fi
rlPass "Initialization passed."
rlPhaseEnd
# --- Run tests ---------------------------------------------------------------
overall_status=0
for test in ${TESTS[@]}
do
run_test $test "$__stdout_log" "$__stderr_log"
if test $? -gt 0
then
overall_status=1
fi
done
rlPhaseStartTest
if test $overall_status -gt 0
then
rlFail "Some tests failed."
exit 1
else
rlPass "All tests passed."
fi
echo
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -0,0 +1,43 @@
#!/usr/bin/env sh
#
# smc-tools gating
#
# verify that LD_PRELOAD works
#
TESTS+=(test_smc_tools_ld_preload)
DESCRIPTION_test_smc_tools_ld_preload=(
"Verify that smc-tools's libsmc-preload.so can be LD_PRELOAD-ed."
)
function test_smc_tools_ld_preload()
{
local stdout_log="$1"
local stderr_log="$2"
shift 2
echo > $stdout_log
echo > $stderr_log
echo "# Calling LD_PRELOAD=\"$PLD_LD\" ping -4 google.com -c 1" \
>> $stdout_log
LD_PRELOAD="$PLD_LD" ping -4 google.com -c 1 >> $stdout_log 2>> $stderr_log
if test $? -gt 0
then
echo
echo "ERROR: Failed with non-zero return code." >&2
echo "STDOUT {"
cat $stdout_log
echo "}"
echo "STDERR {"
cat $stderr_log
echo "}"
return 1
fi
}

12
tests/tests.yml Normal file
View File

@ -0,0 +1,12 @@
- hosts: localhost
tags:
- classic
roles:
- role: standard-test-beakerlib
tests:
- sanity
required_packages:
- bash
- coreutils
- iputils