diff --git a/.gitignore b/.gitignore index e69de29..9817053 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +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.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 new file mode 100644 index 0000000..c9c483f --- /dev/null +++ b/omping.spec @@ -0,0 +1,125 @@ +Name: omping +Version: 0.0.4 +Release: 23%{?dist} +Summary: Utility to test IP multicast functionality +License: ISC +URL: https://github.com/jfriesse/omping +Source0: https://github.com/jfriesse/%{name}/releases/download/%{version}/%{name}-%{version}.tar.gz + +BuildRequires: gcc + +%description +Omping (Open Multicast Ping) is tool to test IP multicast functionality +primarily in local network. + +%prep +%setup -q + +%build +%set_build_flags +%make_build + +%install +%make_install PREFIX="%{_prefix}" + +%files +%doc AUTHORS +%license COPYING +%{_bindir}/%{name} +%{_mandir}/man8/* + +%changelog +* 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 + +* Fri Nov 19 2010 Jan Friesse - 0.0.1-1 +- Initial package for Fedora diff --git a/sources b/sources new file mode 100644 index 0000000..e9b0138 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (omping-0.0.4.tar.gz) = 358362b41c8a502f95f4a7ac044122159cc73b2b124849c957d4041c14dc38057febeb725066ceb7c595ed059a60c7dffd14c986fa90119a8d27055e665bd023 diff --git a/tests/.gitignore b/tests/.gitignore new file mode 100644 index 0000000..e6c79fd --- /dev/null +++ b/tests/.gitignore @@ -0,0 +1,3 @@ +# Ignore tests runs/artefacts. +artifacts/** +**/*.retry diff --git a/tests/smoke/runtest.sh b/tests/smoke/runtest.sh new file mode 100644 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 diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..65995c8 --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,10 @@ +- hosts: localhost + roles: + - role: standard-test-basic + tags: + - classic + tests: + - smoke + required_packages: + - iproute + - omping