diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..f075ad7 --- /dev/null +++ b/gating.yaml @@ -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} diff --git a/omping.rpmlintrc b/omping.rpmlintrc new file mode 100644 index 0000000..246b81e --- /dev/null +++ b/omping.rpmlintrc @@ -0,0 +1,2 @@ +# Spelling error multicast +addFilter(r'W: spelling-error .* multicast') diff --git a/omping.spec b/omping.spec index e0c66e0..541936c 100644 --- a/omping.spec +++ b/omping.spec @@ -1,37 +1,110 @@ Name: omping Version: 0.0.4 -Release: 12%{?dist} +Release: 35%{?dist} Summary: Utility to test IP multicast functionality -Group: Applications/Internet License: ISC -URL: http://fedorahosted.org/omping/ -Source0: http://fedorahosted.org/releases/o/m/omping/%{name}-%{version}.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +URL: https://github.com/jfriesse/omping +Source0: https://github.com/jfriesse/%{name}/releases/download/%{version}/%{name}-%{version}.tar.gz + +BuildRequires: gcc +BuildRequires: make +BuildRequires: git %description Omping (Open Multicast Ping) is tool to test IP multicast functionality primarily in local network. %prep -%setup -q +%autosetup -S git_am %build -make %{?_smp_mflags} CFLAGS="%{optflags}" +%set_build_flags +%make_build %install -rm -rf %{buildroot} -make DESTDIR="%{buildroot}" PREFIX="%{_prefix}" install - -%clean -rm -rf %{buildroot} +%make_install PREFIX="%{_prefix}" %files -%defattr(-,root,root,-) -%doc AUTHORS COPYING +%doc AUTHORS +%license COPYING %{_bindir}/%{name} %{_mandir}/man8/* %changelog +* Thu Jul 24 2025 Fedora Release Engineering - 0.0.4-35 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Fri Jan 17 2025 Fedora Release Engineering - 0.0.4-34 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Thu Jul 18 2024 Fedora Release Engineering - 0.0.4-33 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Thu Jan 25 2024 Fedora Release Engineering - 0.0.4-32 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 0.0.4-31 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Jul 20 2023 Fedora Release Engineering - 0.0.4-30 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jun 06 2023 Jan Friesse - 0.0.4-29 +- migrated to SPDX license + +* Thu Jan 19 2023 Fedora Release Engineering - 0.0.4-28 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Jul 22 2022 Fedora Release Engineering - 0.0.4-27 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jan 20 2022 Fedora Release Engineering - 0.0.4-26 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Jul 22 2021 Fedora Release Engineering - 0.0.4-25 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jan 26 2021 Fedora Release Engineering - 0.0.4-24 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 0.0.4-23 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 22 2020 Jan Friesse - 0.0.4-22 +- Use make macros +- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro + +* Thu Mar 19 2020 Jan Friesse - 0.0.4-21 +- Add CI tests +- Enable gating + +* Wed Jan 29 2020 Fedora Release Engineering - 0.0.4-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 0.0.4-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Mar 20 2019 Jan Friesse - 0.0.4-18 +- Use license and set_build_flags macro +- Fix URL and source + +* Fri Feb 01 2019 Fedora Release Engineering - 0.0.4-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 0.0.4-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jul 10 2018 Jan Friesse - 0.0.4-15 +- Modernize spec file a bit +- Fix spec file changelog dates +- Add gcc build requirement + +* Mon Jul 9 2018 Florian Weimer - 0.0.4-14 +- Use LDFLAGS from redhat-rpm-config + +* Thu Feb 08 2018 Fedora Release Engineering - 0.0.4-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + * Thu Aug 03 2017 Fedora Release Engineering - 0.0.4-12 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild @@ -65,13 +138,13 @@ rm -rf %{buildroot} * Fri Jan 13 2012 Fedora Release Engineering - 0.0.4-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild -* Mon Jun 22 2011 Jan Friesse - 0.0.4-1 +* Wed Jun 22 2011 Jan Friesse - 0.0.4-1 - Update to version 0.0.4 * Mon May 02 2011 Jan Friesse - 0.0.3-1 - Update to version 0.0.3 -* Wed Apr 14 2011 Jan Friesse - 0.0.2-3 +* Thu Apr 14 2011 Jan Friesse - 0.0.2-3 - Resolves rhbz#696509 * Tue Feb 08 2011 Fedora Release Engineering - 0.0.2-2 diff --git a/sources b/sources index 2540483..e9b0138 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -ab17ba458ac942e7295dd95496ae90f4 omping-0.0.4.tar.gz +SHA512 (omping-0.0.4.tar.gz) = 358362b41c8a502f95f4a7ac044122159cc73b2b124849c957d4041c14dc38057febeb725066ceb7c595ed059a60c7dffd14c986fa90119a8d27055e665bd023 diff --git a/tests/plan.fmf b/tests/plan.fmf new file mode 100644 index 0000000..86ef9b3 --- /dev/null +++ b/tests/plan.fmf @@ -0,0 +1,10 @@ +summary: Run all smoke tests +discover: + how: fmf +execute: + how: tmt +prepare: + how: install + package: + - iproute + - omping diff --git a/tests/smoke/main.fmf b/tests/smoke/main.fmf new file mode 100644 index 0000000..c431594 --- /dev/null +++ b/tests/smoke/main.fmf @@ -0,0 +1,2 @@ +summary: Basic smoke test +test: ./runtest.sh diff --git a/tests/smoke/runtest.sh b/tests/smoke/runtest.sh new file mode 100755 index 0000000..5cd93c1 --- /dev/null +++ b/tests/smoke/runtest.sh @@ -0,0 +1,76 @@ +#!/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 + +# Home https://github.com/jfriesse/csts/tree/master/smoke + +# -e is really important +set -xe +set -o pipefail + +#################### +# Helper functions # +#################### +get_ip() { + ip_res=$(ip route get 8.8.8.8) + # Format is "8.8.8.8 via ROUTE_IPADDR dev DEV src IPADDR uid NUMBER" + # Remove everything up to "src " and then everything after " " + addr=${ip_res##*src } + addr=${addr%% *} + + echo "$addr" +} + +################## +# Test functions # +################## + +test_omping_v() { + # Check that omping -V prints version + ver_res=`omping -V` + [ "$ver_res" != "${ver_res/[0-9]*\.[0-9]*\.[0-9]/}" ] + + # Check that omping exists and prints usage + res=`omping || true` + [ "$res" != "${res/usage/}" ] +} + +test_man_page() { + man -w "omping" +} + +test_local_ping() { + omping_res_file=`mktemp` + local_ip=$(get_ip) + + omping -c 5 "$local_ip" | tee "$omping_res_file" + + grep "$local_ip.*joined (S,G)" "$omping_res_file" + grep "$local_ip.*given amount of query messages was sent" "$omping_res_file" + grep "$local_ip.*unicast, xmt/rcv/%loss =.*min/avg/max/std-dev" "$omping_res_file" + grep "$local_ip.*multicast, xmt/rcv/%loss =.*min/avg/max/std-dev" "$omping_res_file" + + rm -f "$omping_res_file" +} + +######## +# main # +######## +test_omping_v +test_man_page + +test_local_ping