diff options
author | Ray Strode <rstrode@redhat.com> | 2022-07-28 09:29:44 -0400 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2022-07-28 10:57:21 -0400 |
commit | d25f48f44487d1ef14e46629d66faf8790698b65 (patch) | |
tree | 420b5fb9500ea5fec0480926c657076a55999bfa | |
parent | ca5cbab77b934ea899fbd230f7444231efe101d6 (diff) | |
download | accountsservice-d25f48f44487d1ef14e46629d66faf8790698b65.tar.gz |
ci: Do a coding style check
Now that the accountsservice code has been uncrustified, it would be
good to keep it that way going forward.
plymouth has a script it runs during CI to check the coding style.
This commit steals that script and uses it for accountsservice CI
too.
-rw-r--r-- | .gitlab-ci.yml | 2 | ||||
-rwxr-xr-x | tests/check-format.sh | 51 | ||||
-rw-r--r-- | tests/meson.build | 2 | ||||
-rw-r--r-- | tests/uncrustify.cfg | 121 |
4 files changed, 176 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c9f7447..a31a23b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,8 +15,10 @@ variables: vala TEST_DEPENDENCIES: gcovr glibc-all-langpacks + patchutils python3-dbusmock python3-gobject-base + uncrustify valgrind stages: diff --git a/tests/check-format.sh b/tests/check-format.sh new file mode 100755 index 0000000..de676c3 --- /dev/null +++ b/tests/check-format.sh @@ -0,0 +1,51 @@ +#!/bin/sh + +SRC_DIR=$(dirname "$0")/.. + +exec >& /dev/stderr + +set -x +env + +if [ -z "$CI_MERGE_REQUEST_DIFF_BASE_SHA" ]; then + UPSTREAM_BRANCH="$(git rev-parse --abbrev-ref --symbolic-full-name @{u})" +else + UPSTREAM_BRANCH="$CI_MERGE_REQUEST_DIFF_BASE_SHA" +fi + +cd "$SRC_DIR" + +cp tests/uncrustify.cfg tests/latest-uncrustify.cfg + +git diff --quiet +DIRTY_TREE="$?" + +if [ "$DIRTY_TREE" -ne 0 ]; then + git stash + git stash apply +fi + +find -name '*.[ch]' -exec uncrustify -q -c tests/latest-uncrustify.cfg --replace {} \; +git diff > after + +git reset --hard $UPSTREAM_BRANCH +find -name '*.[ch]' -exec uncrustify -q -c tests/latest-uncrustify.cfg --replace {} \; +git diff > before + +interdiff --no-revert-omitted before after > diff + +if [ -n "$(cat diff)" ]; then + echo "Uncrustify found style abnormalities" 2>&1 + cat diff + exit 1 +fi + +git reset --hard HEAD@{1} + +if [ "$DIRTY_TREE" -ne 0 ]; then + git stash pop +fi + +echo "No new style abnormalities found by uncrustify!" +exit 0 + diff --git a/tests/meson.build b/tests/meson.build index dedbe67..ff9004d 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -1,3 +1,5 @@ +test('check-format', find_program('check-format.sh')) + libmocklibc = subproject('mocklibc').get_variable('libmocklibc') envs = environment() diff --git a/tests/uncrustify.cfg b/tests/uncrustify.cfg new file mode 100644 index 0000000..3f508cd --- /dev/null +++ b/tests/uncrustify.cfg @@ -0,0 +1,121 @@ +indent_with_tabs = 0 # 1=indent to level only, 2=indent with tabs +input_tab_size = 8 # original tab size +output_tab_size = 8 # new tab size +indent_columns = output_tab_size + +indent_label = 1 # pos: absolute col, neg: relative column + + +# +# inter-symbol newlines +# + +nl_enum_brace = force # "enum {" vs "enum \n {" +nl_union_brace = force # "union {" vs "union \n {" +nl_struct_brace = force # "struct {" vs "struct \n {" +nl_do_brace = remove # "do {" vs "do \n {" +nl_if_brace = remove # "if () {" vs "if () \n {" +nl_for_brace = remove # "for () {" vs "for () \n {" +nl_else_brace = remove # "else {" vs "else \n {" +nl_while_brace = remove # "while () {" vs "while () \n {" +nl_switch_brace = remove # "switch () {" vs "switch () \n {" +nl_brace_while = remove # "} while" vs "} \n while" - cuddle while +nl_brace_else = remove # "} else" vs "} \n else" - cuddle else +sp_brace_else = force +sp_else_brace = force +nl_func_def_args = add +nl_func_var_def_blk = 1 +nl_fcall_brace = remove # "list_for_each() {" vs "list_for_each()\n{" +nl_fdef_brace = add # "int foo() {" vs "int foo()\n{" +# nl_after_return = TRUE; +# nl_before_case = 1 + + +# +# Source code modifications +# + +mod_paren_on_return = remove # "return 1;" vs "return (1);" +mod_full_brace_if = add # "if (a) a--;" vs "if (a) { a--; }" +mod_full_brace_if_chain = 3 +mod_full_brace_for = force # "for () a--;" vs "for () { a--; }" +mod_full_brace_do = force # "do a--; while ();" vs "do { a--; } while ();" +mod_full_brace_while = force # "while (a) a--;" vs "while (a) { a--; }" +mod_full_brace_nl = 3 # don't remove if more than 3 newlines +mod_remove_extra_semicolon = true + + +# +# inter-character spacing options +# + +sp_return_paren = force # "return (1);" vs "return(1);" +sp_sizeof_paren = remove # "sizeof (int)" vs "sizeof(int)" +sp_before_sparen = force # "if (" vs "if(" +sp_after_sparen = force # "if () {" vs "if (){" +sp_after_cast = force # "(int) a" vs "(int)a" +sp_inside_braces = force # "{ 1 }" vs "{1}" +sp_inside_braces_struct = force # "{ 1 }" vs "{1}" +sp_inside_braces_enum = force # "{ 1 }" vs "{1}" +sp_assign = force +sp_arith = force +sp_bool = force +sp_compare = force +sp_assign = force +sp_after_comma = force +sp_func_def_paren = force # "int foo (){" vs "int foo(){" +sp_func_call_paren = force # "foo (" vs "foo(" +sp_func_proto_paren = force # "int foo ();" vs "int foo();" + + +# +# Aligning stuff +# + +align_with_tabs = FALSE # use tabs to align +align_on_tabstop = FALSE # align on tabstops +align_var_def_gap = 1 +align_func_proto_gap = 4 +align_var_def_thresh = 0 +# align_keep_tabs = true +align_enum_equ_span = 4 # '=' in enum definition +# align_nl_cont = TRUE +# align_var_def_span = 2 +# align_var_def_inline = TRUE +# align_var_def_colon = TRUE +# align_assign_span = 1 +align_struct_init_span = 3 # align stuff in a structure init '= { }' +align_right_cmt_span = 3 +# align_pp_define_span = 8; +# align_pp_define_gap = 4; + +cmt_star_cont = true + +# indent_brace = 0 + +nl_func_paren = remove +nl_func_decl_start = remove +nl_func_decl_empty = remove +nl_func_decl_args = force +nl_func_decl_end = remove +sp_inside_paren = remove +sp_inside_square = remove +sp_inside_paren_cast = remove +sp_inside_fparen = remove +sp_inside_sparen = remove +sp_paren_paren = remove +sp_before_ptr_star = force +sp_after_ptr_star = remove +sp_between_ptr_star = remove +align_func_params = true +align_var_struct_span = 6 + +eat_blanks_after_open_brace = true +eat_blanks_before_close_brace = true +pp_indent = remove + +nl_start_of_file = remove +nl_end_of_file = force +nl_end_of_file_min = 1 +nl_comment_func_def = 1 +align_var_def_star_style = 2 |