1. 17 10月, 2011 3 次提交
  2. 16 7月, 2011 5 次提交
    • S
      ktest: Fix bug when ADD_CONFIG is set but MIN_CONFIG is not · 250bae8b
      Steven Rostedt 提交于
      The MIN_CONFIG is a single config that is considered to have all the
      configs that are required to boot the box.
      
      ADD_CONFIG is a list of configs that we add that may contain configs
      known to be broken (set off) or just configs that we want every box to
      have and this can include shared configs.
      
      If a config has no MIN_CONFIG defined, but has multiple files defined
      for the ADD_CONFIG, the test will die, because the MIN_CONFIG will
      default to ADD_CONFIG. The problem is the code to open MIN_CONFIG
      expects a string of one file, not multiple, and the open will fail.
      
      Since the real minconfig that is used is a concatination of MIN_CONFIG
      and ADD_CONFIG files, we change the code to open that instead of
      whatever MIN_CONFIG defaults to.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      250bae8b
    • S
      ktest: Keep fonud configs separate from default configs · 43d1b651
      Steven Rostedt 提交于
      The IGNORE_CONFIG file holds the configs that we don't want to change
      (with their proper settings). But on start up, the make noconfig is
      executed, and the configs that are on are also put into the ignore
      config category. But these are configs that were forced on by the
      kconfig scripts and not something that we found must be enabled to boot
      our machine. By keeping the configs that are forced on by default,
      separate from the configs we found that are required to boot the box, we
      can get a much more interesting IGNORE_CONFIG. In fact, the
      IGNORE_CONFIG can usually end up being the must have configs to boot,
      and only have 6 or 7 configs set.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      43d1b651
    • S
      ktest: Add prompt to use OUTPUT_MIN_CONFIG · 35ce5952
      Steven Rostedt 提交于
      If the defined OUTPUT_MIN_CONFIG in the make_min_config test exists,
      then give a prompt to ask the user if they want to use that config
      instead, as it is very often the case, especially when the test has been
      interrupted. The OUTPUT_MIN_CONFIG is usually the config that one wants
      to use to continue the test where they left off.
      
      But if START_MIN_CONFIG is defined (thus the MIN_CONFIG is not the
      default), then do not prompt, as it will be annoying if the user has
      this as one of many tests, and the test pauses waiting for input, while
      the user is sleeping.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      35ce5952
    • S
      ktest: Use Kconfig dependencies to shorten time to make min_config · b9066f6c
      Steven Rostedt 提交于
      To save time, the test does not just grab any option and test
      it. The Kconfig files are examined to determine the dependencies
      of the configs. If a config is chosen that depends on another
      config, that config will be checked first. By checking the
      parents first, we can eliminate whole groups of configs that
      may have been enabled.
      
      For example, if a USB device config is chosen and depends on
      CONFIG_USB, the CONFIG_USB will be tested before the device.
      If CONFIG_USB is found not to be needed, it, as well as all
      configs that depend on it, will be disabled and removed from
      the current min_config.
      
      Note, the code from streamline_config (make localmodconfig)
      was copied and used to find the dependencies in the Kconfig file.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      b9066f6c
    • S
      ktest: Add test type make_min_config · 4c4ab120
      Steven Rostedt 提交于
      After doing a make localyesconfig, your kernel configuration may
      not be the most useful minimum configuration. Having a true minimum
      config that you can use against other configs is very useful if
      someone else has a config that breaks on your code. By only forcing
      those configurations that are truly required to boot your machine
      will give you less of a chance that one of your set configurations
      will make the bug go away. This will give you a better chance to
      be able to reproduce the reported bug matching the broken config.
      
      Note, this does take some time, and may require you to run the
      test over night, or perhaps over the weekend. But it also allows
      you to interrupt it, and gives you the current minimum config
      that was found till that time.
      
      Note, this test automatically assumes a BUILD_TYPE of oldconfig
      and its test type acts like boot.
      
      TODO: add a test version that makes the config do more than just
            boot, like having network access.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      4c4ab120
  3. 15 6月, 2011 6 次提交
  4. 13 6月, 2011 8 次提交
    • S
      ktest: Allow initrd processing without modules defined · db05cfef
      Steven Rostedt 提交于
      When a config is set with CONFIG_MODULES=n, it does not mean that the
      kernel does not need an initrd to boot. For systems that depend on LVM
      and such, an initrd must run first.
      
      If POST_INSTALL is defined, then run the post install regardless if
      modules are needed or not.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      db05cfef
    • S
      ktest: Have LOG_FILE evaluate options as well · 23715c3c
      Steven Rostedt 提交于
      The LOG_FILE variable needs to evaluate the $ options as well.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      23715c3c
    • S
      ktest: Have wait on stdio honor bug timeout · ecaf8e52
      Steven Rostedt 提交于
      After a bug is found, the STOP_AFTER_FAILURE timeout is used to
      determine how much output should be printed before breaking out
      of the monitor loop. This is to get things like call traces and
      enough infromation about the bug to help determine what caused it.
      
      The STOP_AFTER_FAILURE is usually much shorter than the TIMEOUT
      that is used to determine when to quit after no more stdio is given.
      
      But since the stdio read uses a wait on I/O, the STOP_AFTER_FAILURE is
      only checked after we get something from I/O. But if the I/O does
      not return any more data, we wait the TIMEOUT period instead, even
      though we already triggered a bug report.
      
      The wait on I/O should honor the STOP_AFTER_FAILURE time if a bug has
      been found.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      ecaf8e52
    • S
      ktest: Implement our own force min config · fcb3f16a
      Steven Rostedt 提交于
      Using the build KCONFIG_ALLCONFIG environment variable to force
      the min config may not always work properly. Since ktest is
      written in perl, it is trivial to read and replace the current
      config with the configs specified by the min config.
      
      Now the min config (and add configs) are read by perl and before
      a make is done, these configs in the .config file are replaced
      by the version in the min config.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      fcb3f16a
    • S
      ktest: Add TEST_NAME option · 9064af52
      Steven Rostedt 提交于
      Searching through several tests, it gets confusing which test result
      is for which test. By adding the TEST_NAME option, the user can tell
      which test result belongs to which test.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      9064af52
    • S
      ktest: Add CONFIG_BISECT_GOOD option · 30f75da5
      Steven Rostedt 提交于
      Currently the config_bisect compares the min config with the
      CONFIG_BISECT config. There may be another config that we know
      is good that we want to ignore configs on. By passing in this
      config it will ignore the options that are set in the good config.
      
      Note: This only ignores the config, it does not (yet) handle
      options that are different between the two configs. If the good
      config has "SLAB" set and the bad config has "SLUB" it will not
      find the bug if the bug had to do with changing these two options.
      
      This is something that I intend to implement in the future.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      30f75da5
    • S
      ktest: Add detection of triple faults · f1a5b962
      Steven Rostedt 提交于
      When a triple fault happens in a test, no call trace nor panic
      is displayed. Instead, the system reboots to the good kernel.
      Since the good kernel may display a boot prompt that matches the
      success string, ktest may think that the test succeeded, when it
      did not.
      
      Detecting triple faults is tricky because it is hard to generalize
      what a reboot looks like. The best that we can come up with for now
      is to examine the Linux banner. If we detect that the Linux banner
      matches the test we want to test, then look to see if we hit another
      Linux banner with a different kernel is booted. This can be assumed
      to be a triple fault.
      
      We can't just check for two Linux banners because things like
      early printk may cause the Linux banner to be displayed twice. Checking
      for different kernel versions should be the safe bet.
      
      If this for some reason detects a false triple boot. A new ktest
      config option is also created:
      
       DETECT_TRIPLE_FAULT
      
      This can be set to 0 to disable this checking.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      f1a5b962
    • S
      ktest: Notify reason to break out of monitoring boot · cd4f1d53
      Steven Rostedt 提交于
      Different timeouts can cause the ktest monitor to break out of the
      loop. It becomes annoying that one does not know the reason why
      it exited the monitor loop. Display the cause of the reason why
      the loop was exited.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      cd4f1d53
  5. 02 6月, 2011 3 次提交
  6. 21 5月, 2011 2 次提交
    • S
      ktest: Allow options to be used by other options · 2a62512b
      Steven Rostedt 提交于
      There are cases where one ktest option may be used within another
      ktest option. Allow them to be reused just like config variables
      but there are evaluated at time of test not config processing time.
      
      Thus having something like:
      
      MAKE_CMD = make ARCH=${ARCH}
      
      TEST_START
      ARCH = powerpc
      
      TEST_START
      ARCH = arm
      
      Will have the arch defined for each test iteration.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      2a62512b
    • S
      ktest: Create variables for the ktest config files · 77d942ce
      Steven Rostedt 提交于
      I found that I constantly reuse information for each test case.
      It would be nice to just define a variable to reuse.
      
      For example I may have:
      
      TEST_START
      [...]
      TEST = ssh root@mybox /path/to/my/script
      
      TEST_START
      [...]
      TEST = ssh root@mybox /path/to/my/script
      
      [etc]
      
      The issue is, I may wont to change that script or one of the other
      fields. Then I need to update each line individually.
      
      With the addition of config variables (variables only used during parsing
      the config) we can simplify the config files. These variables can
      also be defined multiple times and each time the new value will
      overwrite the old value.
      
      The convention to use a config variable over a ktest option is to use :=
      instead of =.
      
      Now we could do:
      
      USER := root
      TARGET := mybox
      TEST_SCRIPT := /path/to/my/script
      TEST_CASE := ${USER}@${TARGET} ${TEST_SCRIPT}
      
      TEST_START
      [...]
      TEST = ${TEST_CASE}
      
      TEST_START
      [...]
      TEST = ${TEST_CASE}
      
      [etc]
      
      Now we just need to update the variables at the top.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      77d942ce
  7. 20 5月, 2011 4 次提交
  8. 08 3月, 2011 9 次提交