Github actions added to perform lint and compile

In the test folder, there was lint.sh, but I think flake8 is a better
tool.

Added a compile job for linux, this runs compilation as defined in
the README, runs a sample mtr and runs cmdparse.py test. Need
documentation on what other tests to run and whether to include the
testing in tox instead of running them individually.

Not adding in this PR support for cygwin or freebsd, as that will need
investigation on how to run.

Minor:
- Fixed a typo in configure.ac that used ---- vs -- for a flag option.
This commit is contained in:
darless 2023-07-11 11:18:33 -05:00
parent ab6f80fc8d
commit 4fc3361930
5 changed files with 51 additions and 2 deletions

14
.flake8 Normal file
View File

@ -0,0 +1,14 @@
[flake8]
select =
E902,
E999,
S,
F,
ignore =
F821
per-file-ignores =
test/*: S603,S404

35
.github/workflows/test.yaml vendored Normal file
View File

@ -0,0 +1,35 @@
name: Test compilation
on: [push, pull_request]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Install flake8
run: pip3 install flake8==3.9.2 flake8-bandit==2.1.2 bandit==1.7.2
- name: Run flake8
run: python3 -m flake8 .
compile-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: 3.9
- uses: egor-tensin/setup-gcc@v1.3
with:
version: latest
platform: x64
- name: Bootstrap
run: ./bootstrap.sh
- name: Configure
run: ./configure --without-gtk --without-jansson
- name: Make
run: make -j $(nproc)
- name: Run sample mtr against 1.1.1.1
run: ./mtr --report --report-cycles 1 -m 1 1.1.1.1
- name: Run test - cmdparse.py
run: python3 ./test/cmdparse.py

1
.gitignore vendored
View File

@ -42,3 +42,4 @@ stamp-h1*
/test/*.py.trs
/mtr-*.tar.gz
*.swp

View File

@ -25,7 +25,7 @@ m4_ifndef([PKG_CHECK_MODULES], [m4_defun([PKG_CHECK_MODULES], [AC_MSG_ERROR(
[Could not locate the pkg-config autoconf macros. These are usually located
in /usr/share/aclocal/pkg.m4. If your macros are in a different location,
try setting the environment variable ACLOCAL_OPTS="-I/other/macro/dir"
before running ./bootstrap.sh again, or configure --without-gtk ----without-jansson ])])
before running ./bootstrap.sh again, or configure --without-gtk --without-jansson ])])
])
PKG_PROG_PKG_CONFIG

View File

@ -263,7 +263,6 @@ class TestProbeICMPv4(mtrpacket.MtrPacketTest):
required_success = int(loop_count * 0.90)
self.assertGreaterEqual(success_count, required_success)
class TestProbeICMPv6(mtrpacket.MtrPacketTest):
'''Test sending probes using IP version 6'''