From 9c577bd201009f14b4cb5d8540b6dc03246f6165 Mon Sep 17 00:00:00 2001 From: Guus Sliepen Date: Mon, 4 Apr 2022 21:53:47 +0200 Subject: [PATCH] Run shfmt as part of the reformat target. Add a reformat.py script and call it from the reformat target. It will run astyle and shfmt from the source directory. --- meson.build | 13 ++++--------- reformat.py | 33 +++++++++++++++++++++++++++++++++ test/integration/security.test | 15 ++++++++++----- 3 files changed, 47 insertions(+), 14 deletions(-) create mode 100755 reformat.py diff --git a/meson.build b/meson.build index 14580158..488230e8 100644 --- a/meson.build +++ b/meson.build @@ -138,12 +138,7 @@ if os_name == 'linux' and not opt_systemd.disabled() subdir('systemd') endif -prog_reformat = find_program('astyle', native: true, required: false) -if prog_reformat.found() - run_target('reformat', command: [ - prog_reformat, - '--options=@SOURCE_ROOT@/.astylerc', '--recursive', - '@SOURCE_ROOT@/*.c', '@SOURCE_ROOT@/*.h', - ]) -endif - +run_target('reformat', command: [ + find_program('python3'), + '@SOURCE_ROOT@/reformat.py', +]) diff --git a/reformat.py b/reformat.py new file mode 100755 index 00000000..256e482c --- /dev/null +++ b/reformat.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python3 + +from os import path, environ +from sys import stderr +import subprocess as subp +import glob + +source_root = path.dirname(path.realpath(__file__)) +source_root = environ.get("MESON_SOURCE_ROOT", source_root) + +astyle_cmd = [ + "astyle", + "--options=.astylerc", + "--recursive", + "*.c", + "*.h", +] + +shfmt_cmd = [ + "shfmt", + "-i", "2", + "-s", + "-w", +] + +for path in "**/*.sh", "**/*.test", ".ci/**/*.sh": + shfmt_cmd.extend(glob.glob(path, root_dir=source_root, recursive=True)) + +for cmd in astyle_cmd, shfmt_cmd: + try: + result = subp.run(cmd, cwd=source_root, check=True) + except FileNotFoundError as e: + print("Warning: missing", cmd[0], file=stderr) diff --git a/test/integration/security.test b/test/integration/security.test index a7efe7f0..3945079f 100755 --- a/test/integration/security.test +++ b/test/integration/security.test @@ -48,18 +48,23 @@ start_tinc foo wait_script foo subnet-up echo "[STEP] No ID sent by responding node if we don't send an ID first, before the timeout" -send_with_timeout "0 bar 17.7" "" & job1=$! +send_with_timeout "0 bar 17.7" "" & +job1=$! echo [STEP] ID sent if initiator sends first, but still tarpitted -send_with_timeout "0 bar 17.7" "0 foo 17.7" & job2=$! +send_with_timeout "0 bar 17.7" "0 foo 17.7" & +job2=$! echo [STEP] No invalid IDs allowed -send_with_timeout "0 foo 17.7" "" & job3=$! -send_with_timeout "0 baz 17.7" "" & job4=$! +send_with_timeout "0 foo 17.7" "" & +job3=$! +send_with_timeout "0 baz 17.7" "" & +job4=$! echo [STEP] No NULL METAKEYs allowed data="0 foo 17.0\n1 0 672 0 0 834188619F4D943FD0F4B1336F428BD4AC06171FEABA66BD2356BC9593F0ECD643F0E4B748C670D7750DFDE75DC9F1D8F65AB1026F5ED2A176466FBA4167CC567A2085ABD070C1545B180BDA86020E275EA9335F509C57786F4ED2378EFFF331869B856DDE1C05C461E4EECAF0E2FB97AF77B7BC2AD1B34C12992E45F5D1254BBF0C3FB224ABB3E8859594A83B6CA393ED81ECAC9221CE6BC71A727BCAD87DD80FC0834B87BADB5CB8FD3F08BEF90115A8DF1923D7CD9529729F27E1B8ABD83C4CF8818AE10257162E0057A658E265610B71F9BA4B365A20C70578FAC65B51B91100392171BA12A440A5E93C4AA62E0C9B6FC9B68F953514AAA7831B4B2C31C4\n" -send_with_timeout "$data" "" & job5=$! # Not even the ID should be sent when the first packet contains illegal data +send_with_timeout "$data" "" & # Not even the ID should be sent when the first packet contains illegal data +job5=$! for pid in $job1 $job2 $job3 $job4 $job5; do wait $pid -- 2.20.1