diff options
Diffstat (limited to 'misc/scripts')
-rwxr-xr-x | misc/scripts/check_ci_log.py | 65 | ||||
-rwxr-xr-x | misc/scripts/clang_format.sh | 2 | ||||
-rwxr-xr-x | misc/scripts/copyright_headers.py | 4 | ||||
-rwxr-xr-x | misc/scripts/file_format.sh | 4 |
4 files changed, 71 insertions, 4 deletions
diff --git a/misc/scripts/check_ci_log.py b/misc/scripts/check_ci_log.py new file mode 100755 index 0000000000..f2cdf95c7b --- /dev/null +++ b/misc/scripts/check_ci_log.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import sys + +if len(sys.argv) < 2: + print("ERROR: You must run program with file name as argument.") + sys.exit(1) + +fname = sys.argv[1] + +fileread = open(fname.strip(), "r") +file_contents = fileread.read() + +# If find "ERROR: AddressSanitizer:", then happens invalid read or write +# This is critical bug, so we need to fix this as fast as possible + +if file_contents.find("ERROR: AddressSanitizer:") != -1: + print("FATAL ERROR: An incorrectly used memory was found.") + sys.exit(1) + +# There is also possible, that program crashed with or without backtrace. + +if ( + file_contents.find("Program crashed with signal") != -1 + or file_contents.find("Dumping the backtrace") != -1 + or file_contents.find("Segmentation fault (core dumped)") != -1 +): + print("FATAL ERROR: Godot has been crashed.") + sys.exit(1) + +# Finding memory leaks in Godot is quite difficult, because we need to take into +# account leaks also in external libraries. They are usually provided without +# debugging symbols, so the leak report from it usually has only 2/3 lines, +# so searching for 5 element - "#4 0x" - should correctly detect the vast +# majority of memory leaks + +if file_contents.find("ERROR: LeakSanitizer:") != -1: + if file_contents.find("#4 0x") != -1: + print("ERROR: Memory leak was found") + sys.exit(1) + +# It may happen that Godot detects leaking nodes/resources and removes them, so +# this possibility should also be handled as a potential error, even if +# LeakSanitizer doesn't report anything + +if file_contents.find("ObjectDB instances leaked at exit") != -1: + print("ERROR: Memory leak was found") + sys.exit(1) + +# In test project may be put several assert functions which will control if +# project is executed with right parameters etc. which normally will not stop +# execution of project + +if file_contents.find("Assertion failed") != -1: + print("ERROR: Assertion failed in project, check exectution log for more info") + sys.exit(1) + +# For now Godot leaks a lot of rendering stuff so for now we just show info +# about it and this needs to be reenabled after fixing this memory leaks. + +if file_contents.find("were leaked") != -1 or file_contents.find("were never freed") != -1: + print("WARNING: Memory leak was found") + +sys.exit(0) diff --git a/misc/scripts/clang_format.sh b/misc/scripts/clang_format.sh index e686305dea..63c66d41c3 100755 --- a/misc/scripts/clang_format.sh +++ b/misc/scripts/clang_format.sh @@ -16,6 +16,8 @@ while IFS= read -rd '' f; do continue elif [[ "$f" == "platform/android/java/lib/src/com/google"* ]]; then continue + elif [[ "$f" == *"-so_wrap."* ]]; then + continue fi for extension in ${CLANG_FORMAT_FILE_EXTS[@]}; do diff --git a/misc/scripts/copyright_headers.py b/misc/scripts/copyright_headers.py index bf1e0d3f9c..2f3e4a1b6a 100755 --- a/misc/scripts/copyright_headers.py +++ b/misc/scripts/copyright_headers.py @@ -11,8 +11,8 @@ header = """\ /* GODOT ENGINE */ /* https://godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */ +/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ diff --git a/misc/scripts/file_format.sh b/misc/scripts/file_format.sh index c570ec23a7..795431cd28 100755 --- a/misc/scripts/file_format.sh +++ b/misc/scripts/file_format.sh @@ -30,6 +30,8 @@ while IFS= read -rd '' f; do continue elif [[ "$f" == "platform/android/java/lib/src/com/google"* ]]; then continue + elif [[ "$f" == *"-so_wrap."* ]]; then + continue fi # Ensure that files are UTF-8 formatted. recode UTF-8 "$f" 2> /dev/null @@ -38,8 +40,6 @@ while IFS= read -rd '' f; do # Remove trailing space characters and ensures that files end # with newline characters. -l option handles newlines conveniently. perl -i -ple 's/\s*$//g' "$f" - # Remove the character sequence "== true" if it has a leading space. - perl -i -pe 's/\x20== true//g' "$f" done git diff > patch.patch |