16d76f469SSteven Rostedt# This file holds defaults for most the tests. It defines the options that
26d76f469SSteven Rostedt# are most common to tests that are likely to be shared.
36d76f469SSteven Rostedt#
46d76f469SSteven Rostedt# Note, after including this file, a config file may override any option
56d76f469SSteven Rostedt# with a DEFAULTS OVERRIDE section.
66d76f469SSteven Rostedt#
76d76f469SSteven Rostedt
86d76f469SSteven Rostedt# For those cases that use the same machine to boot a 64 bit
96d76f469SSteven Rostedt# and a 32 bit version. The MACHINE is the DNS name to get to the
106d76f469SSteven Rostedt# box (usually different if it was 64 bit or 32 bit) but the
116d76f469SSteven Rostedt# BOX here is defined as a variable that will be the name of the box
126d76f469SSteven Rostedt# itself. It is useful for calling scripts that will power cycle
136d76f469SSteven Rostedt# the box, as only one script needs to be created to power cycle
146d76f469SSteven Rostedt# even though the box itself has multiple operating systems on it.
156d76f469SSteven Rostedt# By default, BOX and MACHINE are the same.
166d76f469SSteven Rostedt
176d76f469SSteven RostedtDEFAULTS IF NOT DEFINED BOX
186d76f469SSteven RostedtBOX := ${MACHINE}
196d76f469SSteven Rostedt
206d76f469SSteven Rostedt
216d76f469SSteven Rostedt# Consider each box as 64 bit box, unless the config including this file
226d76f469SSteven Rostedt# has defined BITS = 32
236d76f469SSteven Rostedt
246d76f469SSteven RostedtDEFAULTS IF NOT DEFINED BITS
256d76f469SSteven RostedtBITS := 64
266d76f469SSteven Rostedt
276d76f469SSteven Rostedt
286d76f469SSteven RostedtDEFAULTS
296d76f469SSteven Rostedt
306d76f469SSteven Rostedt# THIS_DIR is used through out the configs and defaults to ${PWD} which
316d76f469SSteven Rostedt# is the directory that ktest.pl was called from.
326d76f469SSteven Rostedt
336d76f469SSteven RostedtTHIS_DIR := ${PWD}
346d76f469SSteven Rostedt
356d76f469SSteven Rostedt
36ce8283d5SMasanari Iida# to organize your configs, having each machine save their configs
376d76f469SSteven Rostedt# into a separate directly is useful.
386d76f469SSteven RostedtCONFIG_DIR := ${THIS_DIR}/configs/${MACHINE}
396d76f469SSteven Rostedt
406d76f469SSteven Rostedt# Reset the log before running each test.
416d76f469SSteven RostedtCLEAR_LOG = 1
426d76f469SSteven Rostedt
436d76f469SSteven Rostedt# As installing kernels usually requires root privilege, default the
446d76f469SSteven Rostedt# user on the target as root. It is also required that the target
456d76f469SSteven Rostedt# allows ssh to root from the host without asking for a password.
466d76f469SSteven Rostedt
476d76f469SSteven RostedtSSH_USER = root
486d76f469SSteven Rostedt
49*f3a30016SWangYuli# For accessing the machine, we will ssh to root@machine.
506d76f469SSteven RostedtSSH := ssh ${SSH_USER}@${MACHINE}
516d76f469SSteven Rostedt
526d76f469SSteven Rostedt# Update this. The default here is ktest will ssh to the target box
536d76f469SSteven Rostedt# and run a script called 'run-test' located on that box.
546d76f469SSteven RostedtTEST = ${SSH} run-test
556d76f469SSteven Rostedt
566d76f469SSteven Rostedt# Point build dir to the git repo you use
576d76f469SSteven RostedtBUILD_DIR = ${THIS_DIR}/linux.git
586d76f469SSteven Rostedt
596d76f469SSteven Rostedt# Each machine will have its own output build directory.
606d76f469SSteven RostedtOUTPUT_DIR = ${THIS_DIR}/build/${MACHINE}
616d76f469SSteven Rostedt
626d76f469SSteven Rostedt# Yes this config is focused on x86 (but ktest works for other archs too)
636d76f469SSteven RostedtBUILD_TARGET = arch/x86/boot/bzImage
646d76f469SSteven RostedtTARGET_IMAGE = /boot/vmlinuz-test
656d76f469SSteven Rostedt
666d76f469SSteven Rostedt# have directory for the scripts to reboot and power cycle the boxes
676d76f469SSteven RostedtSCRIPTS_DIR := ${THIS_DIR}/scripts
686d76f469SSteven Rostedt
696d76f469SSteven Rostedt# You can have each box/machine have a script to power cycle it.
706d76f469SSteven Rostedt# Name your script <box>-cycle.
716d76f469SSteven RostedtPOWER_CYCLE = ${SCRIPTS_DIR}/${BOX}-cycle
726d76f469SSteven Rostedt
736d76f469SSteven Rostedt# This script is used to power off the box.
746d76f469SSteven RostedtPOWER_OFF = ${SCRIPTS_DIR}/${BOX}-poweroff
756d76f469SSteven Rostedt
766d76f469SSteven Rostedt# Keep your test kernels separate from your other kernels.
776d76f469SSteven RostedtLOCALVERSION = -test
786d76f469SSteven Rostedt
796d76f469SSteven Rostedt# The /boot/grub/menu.lst is searched for the line:
806d76f469SSteven Rostedt#  title Test Kernel
816d76f469SSteven Rostedt# and ktest will use that kernel to reboot into.
826d76f469SSteven Rostedt# For grub2 or other boot loaders, you need to set BOOT_TYPE
836d76f469SSteven Rostedt# to 'script' and define other ways to load the kernel.
846d76f469SSteven Rostedt# See snowball.conf example.
856d76f469SSteven Rostedt#
866d76f469SSteven RostedtGRUB_MENU = Test Kernel
876d76f469SSteven Rostedt
886d76f469SSteven Rostedt# The kernel build will use this option.
896d76f469SSteven RostedtBUILD_OPTIONS = -j8
906d76f469SSteven Rostedt
916d76f469SSteven Rostedt# Keeping the log file with the output dir is convenient.
926d76f469SSteven RostedtLOG_FILE = ${OUTPUT_DIR}/${MACHINE}.log
936d76f469SSteven Rostedt
946d76f469SSteven Rostedt# Each box should have their own minum configuration
956d76f469SSteven Rostedt# See min-config.conf
966d76f469SSteven RostedtMIN_CONFIG = ${CONFIG_DIR}/config-min
976d76f469SSteven Rostedt
986d76f469SSteven Rostedt# For things like randconfigs, there may be configs you find that
996d76f469SSteven Rostedt# are already broken, or there may be some configs that you always
1006d76f469SSteven Rostedt# want set. Uncomment ADD_CONFIG and point it to the make config files
1016d76f469SSteven Rostedt# that set the configs you want to keep on (or off) in your build.
1026d76f469SSteven Rostedt# ADD_CONFIG is usually something to add configs to all machines,
1036d76f469SSteven Rostedt# where as, MIN_CONFIG is specific per machine.
1046d76f469SSteven Rostedt#ADD_CONFIG = ${THIS_DIR}/config-broken ${THIS_DIR}/config-general
1056d76f469SSteven Rostedt
1066d76f469SSteven Rostedt# To speed up reboots for bisects and patchcheck, instead of
1076d76f469SSteven Rostedt# waiting 60 seconds for the console to be idle, if this line is
1086d76f469SSteven Rostedt# seen in the console output, ktest will know the good kernel has
1096d76f469SSteven Rostedt# finished rebooting and it will be able to continue the tests.
1106d76f469SSteven RostedtREBOOT_SUCCESS_LINE = ${MACHINE} login:
1116d76f469SSteven Rostedt
1126d76f469SSteven Rostedt# The following is different ways to end the test.
1136d76f469SSteven Rostedt# by setting the variable REBOOT to: none, error, fail or
1146d76f469SSteven Rostedt# something else, ktest will power cycle or reboot the target box
1156d76f469SSteven Rostedt# at the end of the tests.
1166d76f469SSteven Rostedt#
1176d76f469SSteven Rostedt# REBOOT := none
1186d76f469SSteven Rostedt#   Don't do anything at the end of the test.
1196d76f469SSteven Rostedt#
1206d76f469SSteven Rostedt# REBOOT := error
1216d76f469SSteven Rostedt#   Reboot the box if ktest detects an error
1226d76f469SSteven Rostedt#
1236d76f469SSteven Rostedt# REBOOT := fail
1246d76f469SSteven Rostedt#   Do not stop on failure, and after all tests are complete
1256d76f469SSteven Rostedt#   power off the box (for both success and error)
1266d76f469SSteven Rostedt#   This is good to run over a weekend and you don't want to waste
1276d76f469SSteven Rostedt#   electricity.
1286d76f469SSteven Rostedt#
1296d76f469SSteven Rostedt
1306d76f469SSteven RostedtDEFAULTS IF ${REBOOT} == none
1316d76f469SSteven RostedtREBOOT_ON_SUCCESS = 0
1326d76f469SSteven RostedtREBOOT_ON_ERROR = 0
1336d76f469SSteven RostedtPOWEROFF_ON_ERROR = 0
1346d76f469SSteven RostedtPOWEROFF_ON_SUCCESS = 0
1356d76f469SSteven Rostedt
1366d76f469SSteven RostedtDEFAULTS ELSE IF ${REBOOT} == error
1376d76f469SSteven RostedtREBOOT_ON_SUCCESS = 0
1386d76f469SSteven RostedtREBOOT_ON_ERROR = 1
1396d76f469SSteven RostedtPOWEROFF_ON_ERROR = 0
1406d76f469SSteven RostedtPOWEROFF_ON_SUCCESS = 0
1416d76f469SSteven Rostedt
1426d76f469SSteven RostedtDEFAULTS ELSE IF ${REBOOT} == fail
1436d76f469SSteven RostedtREBOOT_ON_SUCCESS = 0
1446d76f469SSteven RostedtPOWEROFF_ON_ERROR = 1
1456d76f469SSteven RostedtPOWEROFF_ON_SUCCESS = 1
1466d76f469SSteven RostedtPOWEROFF_AFTER_HALT = 120
1476d76f469SSteven RostedtDIE_ON_FAILURE = 0
1486d76f469SSteven Rostedt
1496d76f469SSteven Rostedt# Store the failure information into this directory
1506d76f469SSteven Rostedt# such as the .config, dmesg, and build log.
1516d76f469SSteven RostedtSTORE_FAILURES = ${THIS_DIR}/failures
1526d76f469SSteven Rostedt
1536d76f469SSteven RostedtDEFAULTS ELSE
1546d76f469SSteven RostedtREBOOT_ON_SUCCESS = 1
1556d76f469SSteven RostedtREBOOT_ON_ERROR = 1
1566d76f469SSteven RostedtPOWEROFF_ON_ERROR = 0
1576d76f469SSteven RostedtPOWEROFF_ON_SUCCESS = 0
158