]> www.infradead.org Git - users/dedekind/aiaiai.git/commitdiff
aiaiai-email: move test-patchset options into the configuration file
authorJacob Keller <jacob.e.keller@intel.com>
Fri, 7 Mar 2014 01:12:51 +0000 (17:12 -0800)
committerArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Mon, 10 Mar 2014 15:03:35 +0000 (17:03 +0200)
This patch modifies the configuration file to include most of the
options around the validator command, so that those no longer have to be
specified manually. This does break compatability with the current
validator setup, since those old options must now be specified on the
command line.

- v2
* Fix typo in coccinelle variable

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
doc/TODO.txt
doc/email/example-aiaiai.cfg
email/aiaiai-email-sh-functions
email/aiaiai-email-test-patchset

index adc9a97298b6e6e894f1eb3ad768ff49fcebea07..204825e0ec4058dd73be89fd59e62f5d3d8c8fed 100644 (file)
@@ -10,12 +10,6 @@ implementing them.
     containing the text for end-users to refer instead. Just like
     email.preamble refers the file, which contains the preamble. This is more
     flexible and consistent.
-  * Move command-line options of 'aiaiai-email-*' scripts to the configuration
-    file. This should make it simpler for users to configure the whole thing
-    when all the knobs are in one place. Just make each script to parse the
-    config file and pick own configuration from there. Namely, most of
-    the 'aiaiai-email-dispatcher', 'aiaiai-email-testpatchset', and
-    'aiaiai-email-lda' options have to go away.
   * Eventually make non-email scripts (aiaiai-test-patchset) also
     support the config file. This could be an alternative to specifying
     everythig via options. E.g., would could run
index 8b3c9b3e0355374a74de5e2110fa0d5fdba9d7c7..9e631608dc3f6750b8784c918b08a15e6c4043d9 100644 (file)
        # "make" command. For example, W=2 KALLSYMS_EXTRA_PASS=1.
        kmake_opts =
 
+       # List of targets (space seperated) for which to run a kernel make.
+       # Leaving this empty will default to "all" as the only target. However,
+       # the "all" target is not implicit so you should explicitly have it in
+       # the list if you want it to run.
+       targets = all namespacecheck
+
+       # Path to the directory containing the deconfig files (those specified
+       # for each project). Leave empty to use the kernel tree default
+       # configs.
+       defconfigdir =
+
+       # Whether to test bisectability between patches in a series (1), or
+       # only to check results of the squished patch-set (0)
+       bisectability = 0
+
+       # Set to (1) to enable sparse during kernel builds
+       sparse = 1
+
+       # Set to (1) to enable smatch during kernel builds
+       smatch = 0
+
+       # Set to (1) to enable cppcheck during kernel builds
+       cppcheck = 0
+
+       # Set to (1) to enable coccinelle scripts during kernel builds
+       coccinelle = 1
+
+
 # The e-mail front-end may operate on several project. Each project has its
 # own kernel tree, kernel configuration, and some other settings. These are
 # configured in per-project sections. Section names have to start with "prj_"
index c3d396cd60c8b5c063ab87d9516444ad6807933c..f21884b2fbf05689fcde55798d4b0215ee70068e 100644 (file)
@@ -174,7 +174,9 @@ parse_config()
 # file:
 #
 # __dcfg_configs, __dcfg_branch, __dcfg_always_cc, __dcfg_reply_to_all,
-# __dcfg_accept_notify, __dcfg_unwanted_keywords, __dcfg_kmake_opts
+# __dcfg_accept_notify, __dcfg_unwanted_keywords, __dcfg_kmake_opts,
+# __dcfg_targets, __dcfg_defconfigdir, __dcfg_bisectability, __dcfg_sparse,
+# __dcfg_smatch, __dcfg_cppcheck, __dcfg_coccinelle
 #
 # It is expected that this is used internally by the parse_prj_config and
 # should not normally be called outside of this file.
@@ -191,6 +193,13 @@ __parse_default_config()
        __dcfg_accept_notify="$(ini_config_get "$cfgfile" "defaults" "accept_notify")"
        __dcfg_unwanted_keywords="$(ini_config_get "$cfgfile" "defaults" "unwanted_keywords")"
        __dcfg_kmake_opts="$(ini_config_get "$cfgfile" "defaults" "kmake_opts")"
+       __dcfg_targets="$(ini_config_get "$cfgfile" "defaults" "targets")"
+       __dcfg_defconfigdir="$(ini_config_get "$cfgfile" "defaults" "defconfigdir")"
+       __dcfg_bisectability="$(ini_config_get "$cfgfile" "defaults" "bisectability")"
+       __dcfg_sparse="$(ini_config_get "$cfgfile" "defaults" "sparse")"
+       __dcfg_smatch="$(ini_config_get "$cfgfile" "defaults" "smatch")"
+       __dcfg_cppcheck="$(ini_config_get "$cfgfile" "defaults" "cppcheck")"
+       __dcfg_coccinelle="$(ini_config_get "$cfgfile" "defaults" "coccinelle")"
 }
 
 # Similar to "parse_config", but parses a project configuration section. If the
@@ -201,8 +210,10 @@ __parse_default_config()
 # The following variables are defined, but receive default values from the
 # [defaults] section, if they are not specified in the project section:
 #
-# pcfg_configs, pcfg_branch, pcfg_reply_to_all, pcfg_accept_notify,
-# pcfg_always_cc, pcfg_unwanted_keywords, and pcfg_kmake_opts.
+# pcfg_configs, pcfg_branch, pcfg_always_cc, pcfg_reply_to_all,
+# pcfg_accept_notify, pcfg_unwanted_keywords, pcfg_kmake_opts, pcfg_targets,
+# pcfg_defconfigdir, pcfg_bisectability, pcfg_sparse, pcfg_smatch,
+# pcfg_cppcheck, pcfg_coccinelle
 #
 # If the project is not found, this function only defined an empty "pcfg_name"
 # variable.
@@ -245,6 +256,20 @@ parse_prj_config()
        ini_config_is_set "$cfgfile" "prj_$prj" "unwanted_keywords" || pcfg_unwanted_keywords="$__dcfg_unwanted_keywords"
        pcfg_kmake_opts="$(ini_config_get "$cfgfile" "prj_$prj" "kmake_opts")"
        ini_config_is_set "$cfgfile" "prj_$prj" "kmake_opts" || pcfg_kmake_opts="$__dcfg_kmake_opts"
+       pcfg_targets="$(ini_config_get "$cfgfile" "prj_$prj" "targets")"
+       ini_config_is_set "$cfgfile" "prj_$prj" "targets" || pcfg_targets="$__dcfg_targets"
+       pcfg_defconfigdir="$(ini_config_get "$cfgfile" "prj_$prj" "defconfigdir")"
+       ini_config_is_set "$cfgfile" "prj_$prj" "defconfigdir" || pcfg_defconfigdir="$__dcfg_defconfigdir"
+       pcfg_bisectability="$(ini_config_get "$cfgfile" "prj_$prj" "bisectability")"
+       ini_config_is_set "$cfgfile" "prj_$prj" "bisectability" || pcfg_bisectability="$__dcfg_bisectability"
+       pcfg_sparse="$(ini_config_get "$cfgfile" "prj_$prj" "sparse")"
+       ini_config_is_set "$cfgfile" "prj_$prj" "sparse" || pcfg_sparse="$__dcfg_sparse"
+       pcfg_smatch="$(ini_config_get "$cfgfile" "prj_$prj" "smatch")"
+       ini_config_is_set "$cfgfile" "prj_$prj" "smatch" || pcfg_smatch="$__dcfg_smatch"
+       pcfg_cppcheck="$(ini_config_get "$cfgfile" "prj_$prj" "cppcheck")"
+       ini_config_is_set "$cfgfile" "prj_$prj" "cppcheck" || pcfg_cppcheck="$__dcfg_cppcheck"
+       pcfg_coccinelle="$(ini_config_get "$cfgfile" "prj_$prj" "coccinelle")"
+       ini_config_is_set "$cfgfile" "prj_$prj" "coccinelle" || pcfg_coccinelle="$__dcfg_coccinelle"
 }
 
 # Compose (but not send) e-mail reply. This function assumes that the following
index cb177dbcbda856d5ca73fe81ffd9494a5f0c8732..a55b4810db07238cf9e14b968b62375a0401af51 100755 (executable)
@@ -35,20 +35,9 @@ The mbox file containing the patches to test is expected to come from stdin
 
 Options:
   -i, --input=MBOX       use the MBOX file instead of stdin;
-  -C, --confdir=CDIR     path to the directory containing the defconfig files
-                         (those you specify in the config file); by default the
-                         defconfig files are assumed to be part of the
-                         <kernel-tree>; this option makes it possible to use
-                         stand-alone defconfig files instead;
   -p, --preserve         preserve all the temporary files - do not clean up;
       --test-mode        test mode - work as usually, but do not actually
                          send replies;
-      --bisectability    test bisectability;
-      --targets          list of make targets to build (defaults to all);
-      --sparse           check with sparse while building;
-      --smatch           check with smatch while building;
-      --cppcheck         check with cppcheck;
-      --coccinelle       check with coccinelle;
   -v, --verbose          be verbose;
   -h, --help             show this text and exit.
 EOF
@@ -187,19 +176,12 @@ $(cat -- $tmpdir/test-patchset.log)
 EOF
 }
 
-TEMP=`getopt -n $PROG -o i:,C:,p,v,h --long test-mode,input:,confdir:,preserve,bisectability,targets,sparse,smatch,cppcheck,coccinelle,verbose,help -- "$@"` ||
+TEMP=`getopt -n $PROG -o i:,C:,p,v,h --long test-mode,input:,preserve,verbose,help -- "$@"` ||
        fail_usage ""
 eval set -- "$TEMP"
 
 mbox=
-confdir=
 test_mode=
-bisectability=
-targets="all"
-sparse=
-smatch=
-cppcheck=
-coccinelle=
 
 while true; do
        case "$1" in
@@ -207,35 +189,12 @@ while true; do
                mbox="$(opt_check_read "$1" "$2")"
                shift
                ;;
-       -C|--confdir)
-               confdir="$(opt_check_dir "$1" "$2")"
-               shift
-               ;;
        -p|--preserve)
                preserve="--preserve"
                ;;
        --test-mode)
                test_mode=y
                ;;
-       --bisectability)
-               bisectability="--bisectability"
-               ;;
-       --targets)
-               targets="$2"
-               shift
-               ;;
-       --sparse)
-               sparse="--sparse"
-               ;;
-       --smatch)
-               smatch="--smatch"
-               ;;
-       --cppcheck)
-               cppcheck="--cppcheck"
-               ;;
-       --coccinelle)
-               coccinelle="--coccinelle"
-               ;;
        -v|--verbose) verbose=-v
                ;;
        -h|--help)
@@ -325,6 +284,17 @@ if [ -z "$pcfg_name" ]; then
        error_project_not_found
 fi
 
+bisectability=
+sparse=
+smatch=
+cppcheck=
+coccinelle=
+[ "$pcfg_bisectability" != "1" ] || bisectablity="--bisectability"
+[ "$pcfg_sparse" != "1" ] || sparse="--sparse"
+[ "$pcfg_smatch" != "1" ] || smatch="--smatch"
+[ "$pcfg_cppcheck" != "1" ] || cppcheck="--cppcheck"
+[ "$pcfg_coccinelle" != "1" ] || coccinelle="--coccinelle"
+
 # Create the Cc list for replies that we'll be sending
 if [ "$pcfg_reply_to_all" = "1" ]; then
        # All the patch recipients will be CCed
@@ -343,9 +313,9 @@ fi
 # Test the path (or patch-set)
 verbose "Test configs \"$pcfg_configs\" branch \"$pcfg_branch\" of \"$pcfg_path\""
 aiaiai-test-patchset $verbose $preserve \
-       $bisectability ${targets:--targets "$targets"} $sparse $smatch $cppcheck $coccinelle \
+       ${pcfg_targets:--targets "$pcfg_targets"} $bisectability $sparse $smatch $cppcheck $coccinelle \
        -i "$mbox" -j "$cfg_jobs" -c "$pcfg_branch" -w "$tmpdir" \
-       ${confdir:+-C "$confdir"} \
+       ${pcfg_defconfigdir:+-C "$pcfg_defconfigdir"} \
        ${pcfg_unwanted_keywords:+-K "$pcfg_unwanted_keywords"} -- \
        ${pcfg_kmake_opts:+-M "$pcfg_kmake_opts"} \
        "$pcfg_path" "$pcfg_configs" > "$tmpdir/test-patchset.log" ||