Compare commits
30 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a0c252ed72 | ||
|
|
974f8c9d34 | ||
|
|
bb01b2f4a4 | ||
|
|
c2272c7f0f | ||
|
|
b77d570f5e | ||
|
|
1c08771a8c | ||
|
|
31355f63d9 | ||
|
|
aa51edbb44 | ||
|
|
d9d609c31c | ||
|
|
d9f00805e2 | ||
|
|
e3293ff819 | ||
|
|
13e80dbb77 | ||
|
|
4f55426a11 | ||
|
|
b3f877f234 | ||
|
|
c3e85bf7a4 | ||
|
|
7c03c1f0ca | ||
|
|
68d4490d7a | ||
|
|
ad38e6ac56 | ||
|
|
fddb64ab58 | ||
|
|
b79dd2b565 | ||
|
|
7b8181d4af | ||
|
|
3ce5a3dbab | ||
|
|
282f830b23 | ||
|
|
c7dc8621d0 | ||
|
|
04e7ff631d | ||
|
|
5f13f6da7c | ||
|
|
41de934b9e | ||
|
|
5ba0d457ca | ||
|
|
62f9cbfc4c | ||
|
|
1f46a1042f |
9 changed files with 254 additions and 8 deletions
1
.fmf/version
Normal file
1
.fmf/version
Normal file
|
|
@ -0,0 +1 @@
|
|||
1
|
||||
7
.gitignore
vendored
7
.gitignore
vendored
|
|
@ -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
15
gating.yaml
Normal 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}
|
||||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (spausedd-20190807.tar.gz) = a9c61dcecc8c013abcc20bb43501f7130353a284352d0206cd256be379ae3c2b5a975d0175850c980a21d5d9b2e3eb8e331f7cc0975857df740af5a4707712ae
|
||||
SHA512 (spausedd-20210719.tar.gz) = e2a05fd0d9ff4620848fe51d2d06e9c81b9f1553bb092a5e5ac229dc96d3bbd73b9aa2e1c6832e1625cfa8e033844701cdf3c3b7c053213fea167d33bd2bfc90
|
||||
|
|
|
|||
2
spausedd.rpmlintrc
Normal file
2
spausedd.rpmlintrc
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
# Empty %postun
|
||||
addFilter(r'W: empty-%postun')
|
||||
|
|
@ -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
9
tests/plan.fmf
Normal 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
2
tests/smoke/main.fmf
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
summary: Basic smoke test
|
||||
test: ./runtest.sh
|
||||
133
tests/smoke/runtest.sh
Executable file
133
tests/smoke/runtest.sh
Executable 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue