05 Jan, 2012

2 commits

  • When testing a kernel that has warnings, ktest.pl will fail the test
    when it sees the warning. If you need to test the the kernel and want
    to ignore the errors that are produced, the option IGNORE_ERRORS has
    been added. When IGNORE_ERRORS is set to something other than 0, it will
    ignore call traces due to WARN_ON().

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • The REBOOT_TYPE may be either grub or script, if it is script
    it is expected that a REBOOT_SCRIPT is defined.

    With the SWITCH_TO_TEST which is the complement of SWITCH_TO_GOOD,
    which does basically the same thing as REBOOT_SCRIPT and but for
    both grub and script, the REBOOT_SCRIPT does not need to be mandatory
    anymore.

    Do not require the REBOOT_SCRIPT and always run the reboot code
    for both grub and script.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     

23 Dec, 2011

12 commits

  • It becomes quite annoying when you go to run a test and then
    realize that you typed an option name wrong, and the test starts
    doing the default action and not what you expected it to do.

    It is even more annoying when you wake up the next day after
    running the test over night when you discover this.

    By testing if all options specified in a config file are
    used by either ktest or were used in one of the option's values
    we can see if there are any dangling options that were not used.
    In such a case, show the user the options that were not used
    and ask them if they want to continue or not.

    The option IGNORE_UNUSED was also added to allow the user to
    override this feature.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • Currently the patchcheck, bisect, and config_bisect variables
    are only able to be set per test. You can not set a default
    value for them.

    By letting default values be set, it makes some config files
    a bit easier, and also makes it easier to find typos in the
    option names.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • Initializing each default value by specifying the hash name is
    ugly. This is one of the rare cases that the "perl way" is actually
    much cleaner and easier to read.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • For machines that do no use grub, it may be needed to update an
    external image (tftp) before doing a reboot into either the
    test image or the known good image.

    The option SWITCH_TO_GOOD is added, where if it is defined, the
    command that is specified as its value will be executed before
    doing a reboot into a known good image.

    The option SWITCH_TO_TEST is added, where if it is defined, the
    command that is specified as its value will be executed before
    doing a reboot into the test image.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • When running the ktest git bisect test, if the BISECT_TYPE is "test",
    the bisect is determined to be good or bad based off of the error
    code of the test that is run. Currently, if the test returns 0,
    it is considered a pass (good), a non-zero is considered a fail (bad).

    But it has been requested to add more options, and also change
    the meanings of the error codes of the test. For example, one may
    want the test to detect if the commit is not good or bad,
    (maybe the bisect came to a point where the code in question
    does not exist). The test could report an error code that should tell
    ktest to skip the commit.

    Also, a test could detect that something is horribly wrong and the
    biscet should just be aborted.

    The new options:

    BISECT_RET_GOOD
    BISECT_RET_BAD
    BISECT_RET_SKIP
    BISECT_RET_ABORT
    BISECT_RET_DEFAULT

    have been added. The first 4 take an integer value that will
    represent if the test should be considered a pass, fail, neither
    good nor bad, or abort respectively.

    The BISECT_RET_DEFAULT will bo whatever is not defined by the
    above codes. If only BISECT_RET_DEFAULT is defined, then all tests
    will do the default.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • All options can take variables "${var}". Before doing any processing
    or decision making on the content of an option, evaluate it incase
    there are variables that may change the outcome.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • The install process may also need to know what the kernel version
    is, to add it to the name. Evaluate it for both install and
    post install.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • If all the tests are only for build or install, do not ask
    for options not needed to do the install, if the options do
    not exist.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • When creating a new config, ask for the BUILD_OPTIONS variable
    that lets users add things like -j20 to the make.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • When creating a ktest config or if te config only has build only
    tests, some of the manditory config options are not needed.

    Do not ask for them if all tests in the config file are just build
    tests.

    Suggested-by: Darren Hart
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • When no argument is supplied to ktest, or the config applied does
    not exist and a new config is being created, instead of just using
    the default test type, give the user an option to pick the test type
    of either 'build, install, or boot'. Other options may be added later
    but then those would require more questions as they require more
    fields. But that's for another release of ktest to add that feature.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • If a bisect is killed for some reason, have ktest detect that a bisect
    is in progress and if so, allow the user to start the bisect where
    it left off.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     

24 Nov, 2011

1 commit

  • Typing in a full path when you know that the path exists within
    the directory your are running is tedious and unnecessary.

    Allow the user to use ${PWD} if they want a dynamic path name
    which will be the path that ktest.pl is executed from
    or use ${THIS_DIR} which is a variable assigned `pwd` and
    the the variable will exist within the config, allowing the user
    to change it and affect all other paths using this variable as well

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     

22 Nov, 2011

1 commit

  • When a user runs ktest without an argument, or the argument given
    is not a config file that exists, ktest will ask the user a few
    questions to create a simple ktest config file.

    A few of the questions should have a default value set, that if anything
    it will make it easier for the user to know what is suppose to
    be in that value.

    These new values are:

    SSH_USER, BUILD_TARGET and TARGET_IMAGE

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     

19 Nov, 2011

3 commits

  • Add a STORE_SUCCESSES option, to allow success logs to be stored, for
    example to double-check or otherwise post-process the test logs.

    Link: http://lkml.kernel.org/r/1321616131-21352-3-git-send-email-rabin@rab.in

    Signed-off-by: Rabin Vincent
    Signed-off-by: Steven Rostedt

    Rabin Vincent
     
  • The test output may contain useful information; save it along with the
    already-saved buildlog, dmesg, and .config.

    Link: http://lkml.kernel.org/r/1321616131-21352-1-git-send-email-rabin@rab.in

    Signed-off-by: Rabin Vincent
    Signed-off-by: Steven Rostedt

    Rabin Vincent
     
  • Let's say we have "OUTPUT_DIR = build/${TEST_NAME}", and we're iterating
    a test. In the second iteration of a test, the TEST_NAME of the test
    we're repeating is not used. Instead, ${TEST_NAME} appears literally:

    touch /home/rabin/kernel/test/build/${TEST_NAME}/.config ... SUCCESS

    Fix this by making __eval_option() check the parent test options
    for a repeated test.

    Link: http://lkml.kernel.org/r/1321616131-21352-2-git-send-email-rabin@rab.in

    Signed-off-by: Rabin Vincent
    Signed-off-by: Steven Rostedt

    Rabin Vincent
     

28 Oct, 2011

1 commit

  • When ktest.pl is called without any arguments, or if the config
    file does not exist, ktest.pl will ask the user for some information.
    Some of these questions are code paths. Allowing the user to type
    ${PWD} for the current directory greatly simplifies these entries.

    Add variable processing to the entered values.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     

22 Oct, 2011

2 commits

  • Adding the variable ${PWD} that equals `pwd` makes the config files
    much simpler.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • On some tests that do multiple boots (patchcheck, bisect, etc), the build
    of the next kernel to run may finish before the stable kernel has finished
    booting. Then the install of the new kernel will fail when it tries to connect
    as the machine has not finished the boot process.

    Do one more monitor flush to make sure the machine is up and running before
    trying to connect to it again.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     

20 Oct, 2011

1 commit

  • When setting the next kernel to boot to with grub, do not opencode
    the reboot operation. The normal reboot operation can be modified by
    config options (namely POWERCYCLE_AFTER_REBOOT). This needs to affect
    all reboots. Remove the opencoded reboot to make sure that any changes
    to the reboot code also affect all reboots.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     

17 Oct, 2011

17 commits