Compare commits

...
Sign in to create a new pull request.

30 commits

Author SHA1 Message Date
Jan Friesse
a0c252ed72 Migrate tests from STI to TMT format
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
2025-07-28 10:24:20 +02:00
Fedora Release Engineering
974f8c9d34 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 18:35:37 +00:00
Jan Friesse
bb01b2f4a4 Add git build dependency
Required for autosetup git_am

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
2025-03-25 11:14:24 +01:00
Jan Friesse
c2272c7f0f Use autosetup
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
2025-03-25 11:04:00 +01:00
Fedora Release Engineering
b77d570f5e Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 11:20:04 +00:00
Fedora Release Engineering
1c08771a8c Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 06:09:40 +00:00
Fedora Release Engineering
31355f63d9 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-27 04:04:38 +00:00
Fedora Release Engineering
aa51edbb44 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 02:13:55 +00:00
Jan Friesse
d9d609c31c Migrated to SPDX license
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
2023-06-06 10:48:27 +02:00
Fedora Release Engineering
d9f00805e2 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-21 03:47:05 +00:00
Fedora Release Engineering
e3293ff819 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-23 09:08:37 +00:00
Fedora Release Engineering
13e80dbb77 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-22 01:23:51 +00:00
Fedora Release Engineering
4f55426a11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-23 18:01:50 +00:00
Jan Friesse
b3f877f234 New upstream release 20210719
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
2021-07-19 10:59:05 +02:00
Jan Friesse
c3e85bf7a4 New upstream release 20210520
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
2021-05-20 13:30:17 +02:00
Jan Friesse
7c03c1f0ca Fix CI test
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
2021-05-12 16:16:31 +02:00
Jan Friesse
68d4490d7a New upstream release 20210511
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
2021-05-11 10:39:59 +02:00
Jan Friesse
ad38e6ac56 New upstream release 20210326 2021-03-26 16:10:24 +01:00
Fedora Release Engineering
fddb64ab58 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-27 20:49:09 +00:00
Jan Friesse
b79dd2b565 Add BuildRequires: make
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
2021-01-05 10:41:05 +01:00
Jan Friesse
7b8181d4af New upstream release 20201112 2020-11-12 12:02:15 +01:00
Jan Friesse
3ce5a3dbab New upstream release 20201110 2020-11-10 10:46:16 +01:00
Jan Friesse
282f830b23 Fix build for ELN
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
2020-09-22 15:04:49 +02:00
Fedora Release Engineering
c7dc8621d0 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-29 11:13:11 +00:00
Jan Friesse
04e7ff631d Use make macros
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
2020-07-22 12:23:10 +02:00
Jan Friesse
5f13f6da7c Add required packages for CI revdeps test
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
2020-04-24 12:25:17 +02:00
Jan Friesse
41de934b9e Add rpmlint error whitelist
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
2020-03-27 11:42:19 +01:00
Jan Friesse
5ba0d457ca New upstream release 20200323 2020-03-23 16:44:52 +01:00
Jan Friesse
62f9cbfc4c Enable gating
Signed-off-by: Jan Friesse <jfriesse@redhat.com>
2020-03-19 15:47:30 +01:00
Jan Friesse
1f46a1042f Add CI tests using the Standard Test Interface 2020-03-19 15:46:13 +01:00
9 changed files with 254 additions and 8 deletions

1
.fmf/version Normal file
View file

@ -0,0 +1 @@
1

7
.gitignore vendored
View file

@ -1,2 +1,9 @@
/spausedd-20190320.tar.gz
/spausedd-20190807.tar.gz
/spausedd-20200323.tar.gz
/spausedd-20201110.tar.gz
/spausedd-20201112.tar.gz
/spausedd-20210326.tar.gz
/spausedd-20210511.tar.gz
/spausedd-20210520.tar.gz
/spausedd-20210719.tar.gz

15
gating.yaml Normal file
View file

@ -0,0 +1,15 @@
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_testing
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_stable
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}

View file

@ -1 +1 @@
SHA512 (spausedd-20190807.tar.gz) = a9c61dcecc8c013abcc20bb43501f7130353a284352d0206cd256be379ae3c2b5a975d0175850c980a21d5d9b2e3eb8e331f7cc0975857df740af5a4707712ae
SHA512 (spausedd-20210719.tar.gz) = e2a05fd0d9ff4620848fe51d2d06e9c81b9f1553bb092a5e5ac229dc96d3bbd73b9aa2e1c6832e1625cfa8e033844701cdf3c3b7c053213fea167d33bd2bfc90

2
spausedd.rpmlintrc Normal file
View file

@ -0,0 +1,2 @@
# Empty %postun
addFilter(r'W: empty-%postun')

View file

@ -2,20 +2,28 @@
Name: spausedd
Summary: Utility to detect and log scheduler pause
Version: 20190807
Release: 2%{?dist}
Version: 20210719
Release: 11%{?dist}
License: ISC
URL: https://github.com/jfriesse/spausedd
Source0: https://github.com/jfriesse/%{name}/releases/download/%{version}/%{name}-%{version}.tar.gz
# VMGuestLib exists only for x86 architectures
# VMGuestLib exists only for x86 architectures (for Fedora) and x86_64 (for RHEL)
%if %{with vmguestlib}
%if 0%{?rhel} >= 6
%ifarch x86_64
%global use_vmguestlib 1
%endif
%else
%ifarch %{ix86} x86_64
%global use_vmguestlib 1
%endif
%endif
%endif
BuildRequires: gcc
BuildRequires: make
BuildRequires: git
%{?systemd_requires}
BuildRequires: systemd
@ -27,20 +35,19 @@ BuildRequires: pkgconfig(vmguestlib)
Utility to detect and log scheduler pause
%prep
%setup -q -n %{name}-%{version}
%autosetup -S git_am
%build
%set_build_flags
make \
%make_build \
%if %{defined use_vmguestlib}
WITH_VMGUESTLIB=1 \
%else
WITH_VMGUESTLIB=0 \
%endif
%{?_smp_mflags}
%install
make DESTDIR="%{buildroot}" PREFIX="%{_prefix}" install
%make_install PREFIX="%{_prefix}"
mkdir -p %{buildroot}/%{_unitdir}
install -m 644 -p init/%{name}.service %{buildroot}/%{_unitdir}
@ -64,6 +71,76 @@ install -m 644 -p init/%{name}.service %{buildroot}/%{_unitdir}
%systemd_postun spausedd.service
%changelog
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 20210719-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 20210719-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 20210719-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 20210719-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 20210719-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Jun 06 2023 Jan Friesse <jfriesse@redhat.com> - 20210719-6
- migrated to SPDX license
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 20210719-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 20210719-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 20210719-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 20210719-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Mon Jul 19 2021 Jan Friesse <jfriesse@redhat.com> - 20210719-1
- Add mode option for moving to root cgroup functionality
* Thu May 20 2021 Jan Friesse <jfriesse@redhat.com> - 20210520-1
- Document cgroup v2 problems
* Tue May 11 2021 Jan Friesse <jfriesse@redhat.com> - 20210511-1
- Support for cgroup v2
* Fri Mar 26 2021 Jan Friesse <jfriesse@redhat.com> - 20210326-1
- Fix possible memory leak
- Check memlock rlimit
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 20201112-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Thu Nov 12 2020 Jan Friesse <jfriesse@redhat.com> - 20201112-1
- Add ability to move process into root cgroup
- Rebase to new version
* Tue Nov 10 2020 Jan Friesse <jfriesse@redhat.com> - 20201110-1
- Fix log_perror
- Rebase to new version
* Tue Sep 22 2020 Jan Friesse <jfriesse@redhat.com> - 20200323-4
- Fix build for ELN
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 20200323-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jul 22 2020 Jan Friesse <jfriesse@redhat.com> - 20200323-2
- Use make macros
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
* Mon Mar 23 2020 Jan Friesse <jfriesse@redhat.com> - 20200323-1
- Enhance man page
- Add CI tests
- Enable gating
- Rebase to new version
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 20190807-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

9
tests/plan.fmf Normal file
View file

@ -0,0 +1,9 @@
summary: Run all smoke tests
discover:
how: fmf
execute:
how: tmt
prepare:
how: install
package:
- spausedd

2
tests/smoke/main.fmf Normal file
View file

@ -0,0 +1,2 @@
summary: Basic smoke test
test: ./runtest.sh

133
tests/smoke/runtest.sh Executable file
View file

@ -0,0 +1,133 @@
#!/bin/bash
# Copyright (c) 2019, Red Hat, Inc.
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND RED HAT, INC. DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
# OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL RED HAT, INC. BE LIABLE
# FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
# Author: Jan Friesse <jfriesse@redhat.com>
# Home https://github.com/jfriesse/csts/tree/master/smoke
# -e is really important
set -xe
set -o pipefail
# Variables changing test behavior
MAX_REPEATS=60
SLEEP=5
# Start of the test (for journalctl)
JOURNAL_DATE_SINCE=$(date +"%F %T")
####################
# Helper functions #
####################
# service_start service
service_start() {
# service service must be inactive
systemctl is-active "$1" && exit 1 || true
systemctl start "$1"
systemctl is-active "$1"
}
# service_stop service
service_stop() {
systemctl is-active "$1" || exit 1
systemctl stop "$1"
systemctl is-active "$1" && exit 1 || true
}
# wait_for_log_msg message
wait_for_log_msg() {
local cont=true
local repeats=0
journalctl --since "$JOURNAL_DATE_SINCE" | cat
while $cont;do
if journalctl -t "spausedd" -o cat --since "$JOURNAL_DATE_SINCE" | grep "$1";then
cont=false
else
sleep 1
repeats=$((repeats+1))
[ "$repeats" -le "$MAX_REPEATS" ] || return 1
fi
done
}
##################
# Test functions #
##################
test_spausedd_h() {
# Check that spausedd binary exists and -h returns help text
res=`spausedd -h || true`
[ "$res" != "${res/usage/}" ]
}
test_spausedd_start() {
service_start "spausedd"
wait_for_log_msg 'Running main poll loop with maximum timeout .* and steal threshold .*%'
}
test_spausedd_stop() {
service_stop "spausedd"
wait_for_log_msg 'During .*s runtime spausedd was .*x not scheduled on time'
}
test_sig_stop() {
local cont=true
local repeats=0
spausedd_pid=$(systemctl show spausedd -p "MainPID")
spausedd_pid=${spausedd_pid##*=}
while $cont;do
# Wait a while for full start
sleep $SLEEP
kill -STOP "$spausedd_pid"
sleep $SLEEP
kill -CONT "$spausedd_pid"
if wait_for_log_msg 'Not scheduled for .*s (threshold is .*s), steal time is ';then
cont=false
else
repeats=$((repeats+1))
[ "$repeats" -le "$MAX_REPEATS" ]
fi
done
}
test_man_page() {
man -w "spausedd"
}
########
# main #
########
test_spausedd_h
test_man_page
test_spausedd_start
test_sig_stop
test_spausedd_stop