| 1 | # patchcheck.conf |
| 2 | # |
| 3 | # This contains a test that takes two git commits and will test each |
| 4 | # commit between the two. The build test will look at what files the |
| 5 | # commit has touched, and if any of those files produce a warning, then |
| 6 | # the build will fail. |
| 7 | |
| 8 | |
| 9 | # PATCH_START is the commit to begin with and PATCH_END is the commit |
| 10 | # to end with (inclusive). This is similar to doing a git rebase -i PATCH_START~1 |
| 11 | # and then testing each commit and doing a git rebase --continue. |
| 12 | # You can use a SHA1, a git tag, or anything that git will accept for a checkout |
| 13 | |
| 14 | PATCH_START := HEAD~3 |
| 15 | PATCH_END := HEAD |
| 16 | |
| 17 | # Use the oldconfig if build_type wasn't defined |
| 18 | DEFAULTS IF NOT DEFINED BUILD_TYPE |
| 19 | DO_BUILD_TYPE := oldconfig |
| 20 | |
| 21 | DEFAULTS ELSE |
| 22 | DO_BUILD_TYPE := ${BUILD_TYPE} |
| 23 | |
| 24 | DEFAULTS |
| 25 | |
| 26 | |
| 27 | # Change PATCH_CHECKOUT to be the branch you want to test. The test will |
| 28 | # do a git checkout of this branch before starting. Obviously both |
| 29 | # PATCH_START and PATCH_END must be in this branch (and PATCH_START must |
| 30 | # be contained by PATCH_END). |
| 31 | |
| 32 | PATCH_CHECKOUT := test/branch |
| 33 | |
| 34 | # Usually it's a good idea to have a set config to use for testing individual |
| 35 | # patches. |
| 36 | PATCH_CONFIG := ${CONFIG_DIR}/config-patchcheck |
| 37 | |
| 38 | # Change PATCH_TEST to run some test for each patch. Each commit that is |
| 39 | # tested, after it is built and installed on the test machine, this command |
| 40 | # will be executed. Usually what is done is to ssh to the target box and |
| 41 | # run some test scripts. If you just want to boot test your patches |
| 42 | # comment PATCH_TEST out. |
| 43 | PATCH_TEST := ${SSH} "/usr/local/bin/ktest-test-script" |
| 44 | |
| 45 | DEFAULTS IF DEFINED PATCH_TEST |
| 46 | PATCH_TEST_TYPE := test |
| 47 | |
| 48 | DEFAULTS ELSE |
| 49 | PATCH_TEST_TYPE := boot |
| 50 | |
| 51 | # If for some reason a file has a warning that one of your patches touch |
| 52 | # but you do not care about it, set IGNORE_WARNINGS to that commit(s) |
| 53 | # (space delimited) |
| 54 | #IGNORE_WARNINGS = 39eaf7ef884dcc44f7ff1bac803ca2a1dcf43544 6edb2a8a385f0cdef51dae37ff23e74d76d8a6ce |
| 55 | |
| 56 | # Instead of just checking for warnings to files that are changed |
| 57 | # it can be advantageous to check for any new warnings. If a |
| 58 | # header file is changed, it could cause a warning in a file not |
| 59 | # touched by the commit. To detect these kinds of warnings, you |
| 60 | # can use the WARNINGS_FILE option. |
| 61 | # |
| 62 | # If the variable CREATE_WARNINGS_FILE is set, this config will |
| 63 | # enable the WARNINGS_FILE during the patchcheck test. Also, |
| 64 | # before running the patchcheck test, it will create the |
| 65 | # warnings file. |
| 66 | # |
| 67 | DEFAULTS IF DEFINED CREATE_WARNINGS_FILE |
| 68 | WARNINGS_FILE = ${OUTPUT_DIR}/warnings_file |
| 69 | |
| 70 | TEST_START IF DEFINED CREATE_WARNINGS_FILE |
| 71 | # WARNINGS_FILE is already set by the DEFAULTS above |
| 72 | TEST_TYPE = make_warnings_file |
| 73 | # Checkout the commit before the patches to test, |
| 74 | # and record all the warnings that exist before the patches |
| 75 | # to test are added |
| 76 | CHECKOUT = ${PATCHCHECK_START}~1 |
| 77 | # Force a full build |
| 78 | BUILD_NOCLEAN = 0 |
| 79 | BUILD_TYPE = ${DO_BUILD_TYPE} |
| 80 | |
| 81 | # If you are running a multi test, and the test failed on the first |
| 82 | # test but on, say the 5th patch. If you want to restart on the |
| 83 | # fifth patch, set PATCH_START1. This will make the first test start |
| 84 | # from this commit instead of the PATCH_START commit. |
| 85 | # Note, do not change this option. Just define PATCH_START1 in the |
| 86 | # top config (the one you pass to ktest.pl), and this will use it, |
| 87 | # otherwise it will just use PATCH_START if PATCH_START1 is not defined. |
| 88 | DEFAULTS IF NOT DEFINED PATCH_START1 |
| 89 | PATCH_START1 := ${PATCH_START} |
| 90 | |
| 91 | TEST_START IF ${TEST} == patchcheck |
| 92 | TEST_TYPE = patchcheck |
| 93 | MIN_CONFIG = ${PATCH_CONFIG} |
| 94 | TEST = ${PATCH_TEST} |
| 95 | PATCHCHECK_TYPE = ${PATCH_TEST_TYPE} |
| 96 | PATCHCHECK_START = ${PATCH_START1} |
| 97 | PATCHCHECK_END = ${PATCH_END} |
| 98 | CHECKOUT = ${PATCH_CHECKOUT} |
| 99 | BUILD_TYPE = ${DO_BUILD_TYPE} |
| 100 | |
| 101 | TEST_START IF ${TEST} == patchcheck && ${MULTI} |
| 102 | TEST_TYPE = patchcheck |
| 103 | MIN_CONFIG = ${PATCH_CONFIG} |
| 104 | TEST = ${PATCH_TEST} |
| 105 | PATCHCHECK_TYPE = ${PATCH_TEST_TYPE} |
| 106 | PATCHCHECK_START = ${PATCH_START} |
| 107 | PATCHCHECK_END = ${PATCH_END} |
| 108 | CHECKOUT = ${PATCH_CHECKOUT} |
| 109 | # Use multi to test different compilers? |
| 110 | MAKE_CMD = CC=gcc-4.5.1 make |
| 111 | BUILD_TYPE = ${DO_BUILD_TYPE} |