summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRiku Isokoski <riksu9000@gmail.com>2022-04-30 22:53:34 +0300
committerJF <JF002@users.noreply.github.com>2022-05-08 13:31:00 +0200
commit015f17cd258cc336fa509b190814f6319d19bbbc (patch)
tree4639775e8925ad258fe557bc202671c288f7ebdd /tests
parentdedb397ae088ab57aa0940a9ac10d8f4cd61e69b (diff)
Add formatting test workflow
Diffstat (limited to 'tests')
-rwxr-xr-xtests/test-format.sh37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/test-format.sh b/tests/test-format.sh
new file mode 100755
index 00000000..9caf6de5
--- /dev/null
+++ b/tests/test-format.sh
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+set -e
+
+[ -z "$1" ] && exit
+
+basebranch=$1
+
+CHANGED_FILES=$(git diff --name-only "$basebranch"...HEAD)
+
+CHANGED=0
+
+for file in $CHANGED_FILES
+do
+ case "$file" in
+ *.cpp|*.h)
+ echo Checking "$file"
+ clang-format -i "$file"
+ if ! git diff --quiet "$basebranch"...HEAD
+ then
+ printf "\033[31mError:\033[0m Formatting error in %s\n" "$file"
+ CHANGED=1
+ git add "$file"
+ git commit -q -m "Apply clang-format to $(basename "$file")"
+ printf "Creating patch "
+ git format-patch HEAD~
+ fi
+ esac
+done
+
+if [ $CHANGED = 1 ]
+then
+ printf "\033[31mError:\033[0m Issues found. You may use the patches provided as artifacts to format the code."
+ exit 1
+fi
+
+exit 0