From 4fc3361930ca7f820383b74d87578b45101a7d39 Mon Sep 17 00:00:00 2001 From: darless <3382617+darless@users.noreply.github.com> Date: Tue, 11 Jul 2023 11:18:33 -0500 Subject: [PATCH] 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. --- .flake8 | 14 ++++++++++++++ .github/workflows/test.yaml | 35 +++++++++++++++++++++++++++++++++++ .gitignore | 1 + configure.ac | 2 +- test/probe.py | 1 - 5 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 .flake8 create mode 100644 .github/workflows/test.yaml diff --git a/.flake8 b/.flake8 new file mode 100644 index 0000000..ed16194 --- /dev/null +++ b/.flake8 @@ -0,0 +1,14 @@ +[flake8] + +select = + E902, + E999, + S, + F, + +ignore = + F821 + +per-file-ignores = + test/*: S603,S404 + diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml new file mode 100644 index 0000000..c47f170 --- /dev/null +++ b/.github/workflows/test.yaml @@ -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 \ No newline at end of file diff --git a/.gitignore b/.gitignore index d3d1068..887cc01 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,4 @@ stamp-h1* /test/*.py.trs /mtr-*.tar.gz +*.swp diff --git a/configure.ac b/configure.ac index 286ede6..cc07d81 100644 --- a/configure.ac +++ b/configure.ac @@ -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 diff --git a/test/probe.py b/test/probe.py index df5f496..30acd45 100755 --- a/test/probe.py +++ b/test/probe.py @@ -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''' -- 2.47.2