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/.gitignore b/.gitignore index 5730357..9817053 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ /omping-0.0.1.tar.gz +/omping-0.0.2.tar.gz +/omping-0.0.3.tar.gz +/omping-0.0.4.tar.gz 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-001-getifaddrs-may-return-NULL-ifa_addr.patch b/omping-001-getifaddrs-may-return-NULL-ifa_addr.patch deleted file mode 100644 index a80a0f0..0000000 --- a/omping-001-getifaddrs-may-return-NULL-ifa_addr.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 220749b10250154f95aa05c8b948cbe7015a2daa Mon Sep 17 00:00:00 2001 -From: Jan Friesse -Date: Thu, 14 Apr 2011 13:53:08 +0200 -Subject: [PATCH] getifaddrs may return NULL ifa_addr - -Such ifa_addr is then dereferenced to find out address family. -Proper check is added now. - -Resolves: tt#31 ---- - addrfunc.c | 5 +++-- - 1 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/addrfunc.c b/addrfunc.c -index d6aa3cb..77fac4c 100644 ---- a/addrfunc.c -+++ b/addrfunc.c -@@ -260,8 +260,9 @@ af_find_local_ai(const struct ai_list *ai_list, int *ip_ver, struct ifaddrs **if - TAILQ_FOREACH(aip, ai_list, entries) { - for (ai_i = aip->ai; ai_i != NULL; ai_i = ai_i->ai_next) { - for (ifa_i = ifa; ifa_i != NULL; ifa_i = ifa_i->ifa_next) { -- if (ifa_i->ifa_addr->sa_family != AF_INET && -- ifa_i->ifa_addr->sa_family != AF_INET6) { -+ if (ifa_i->ifa_addr == NULL || -+ (ifa_i->ifa_addr->sa_family != AF_INET && -+ ifa_i->ifa_addr->sa_family != AF_INET6)) { - continue ; - } - --- -1.7.3.4 - 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 a10105a..541936c 100644 --- a/omping.spec +++ b/omping.spec @@ -1,42 +1,161 @@ Name: omping -Version: 0.0.1 -Release: 3%{?dist} +Version: 0.0.4 +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 -Patch0: omping-001-getifaddrs-may-return-NULL-ifa_addr.patch -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 -%patch0 -p1 +%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 -* Wed Apr 14 2011 Jan Friesse - 0.0.1-3 +* 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 + +* Thu Jul 27 2017 Fedora Release Engineering - 0.0.4-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 0.0.4-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Feb 04 2016 Fedora Release Engineering - 0.0.4-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 0.0.4-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sun Aug 17 2014 Fedora Release Engineering - 0.0.4-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 0.0.4-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sat Aug 03 2013 Fedora Release Engineering - 0.0.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Feb 14 2013 Fedora Release Engineering - 0.0.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Fri Jul 20 2012 Fedora Release Engineering - 0.0.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri Jan 13 2012 Fedora Release Engineering - 0.0.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* 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 + +* Thu Apr 14 2011 Jan Friesse - 0.0.2-3 - Resolves rhbz#696509 +* Tue Feb 08 2011 Fedora Release Engineering - 0.0.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Dec 22 2010 Jan Friesse - 0.0.2-1 +- Update to upstream release 0.0.2 + +* Tue Nov 30 2010 Jan Friesse - 0.0.1-3 +- Display error if only one host is specified + * Wed Nov 24 2010 Jan Friesse - 0.0.1-2 - Change hard coded prefix path to macro diff --git a/sources b/sources index 8a0463a..e9b0138 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -9d1c4e66ae6f35b4ace6dbcc94eb66cb omping-0.0.1.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