#
# src/test/testconfig.sh -- configuration for unit tests
#

#
# 1) *** TEST CONFIGURATION ***
#
# Appended to PMEM_FS_DIR and NON_PMEM_FS_DIR to test PMDK with
# file path longer than 255 characters.
#
# LONGDIR="LoremipsumdolorsitametconsecteturadipiscingelitVivamuslacinianibhattortordictumsollicitudinNullamvariusvestibulumligulaetegestaselitsemperidMaurisultriciesligulaeuipsumtinciduntluctusMorbimaximusvariusdolorid"
# DIRSUFFIX="$LONGDIR/$LONGDIR/$LONGDIR/$LONGDIR/$LONGDIR"
#
# For tests that require true persistent memory, set the path to a directory
# on a PMEM-aware file system here. Uncomment this line if there's an
# actual persistent memory available on this system.
# Note that PMEM_FS_DIR is intended mostly to test codepaths where
# pmem_persist() is used for flushing data to persistence.  For now, there is
# no file system on Linux that fully supports pmem_persist(), so even in case
# of DAX-enabled file systems (like ext4), PMDK would behave as for non-PMEM
# file system and would still use pmem_msync().
# You may change this behavior by setting PMEM_FS_DIR_FORCE_PMEM (see below).
# To fully test the PMEM codepaths it is strongly recommended to configure
# DEVICE_DAX_PATH as well.
#
#PMEM_FS_DIR=/mnt/pmem

#
# For tests that require true a non-persistent memory aware file system (i.e.
# to verify something works on traditional page-cache based memory-mapped
# files) set the path to a directory on a normal file system here.
#
#NON_PMEM_FS_DIR=/tmp

#
# If you don't have real PMEM or PMEM emulation set up and/or the filesystem
# does not support MAP_SYNC flag, but still want to test PMEM codepaths
# uncomment this line. It will set PMEM_IS_PMEM_FORCE to 1 for tests that
# require pmem.
#
# Setting this flag to 1, if the PMEM_FS_DIR filesystem supports MAP_SYNC will
# cause an error. This flag cannot be used with filesystems which support
# MAP_SYNC because it would prevent from testing the target PMEM codepaths.
# If you want to ignore this error set the value to 2.
#
#PMEM_FS_DIR_FORCE_PMEM=1

#
# For tests that require raw dax devices without a file system, set a path to
# those devices in an array format. For most tests one device is enough, but
# some might require more.
#
# For big sizes of DAX devices, some tests ran against Valgrind might fail due
# to length of anonymous mmap and Valgrind limitations. Maximum possible length
# is being calculated each time testconfig.sh changes. Tests which require more
# than detected maximum possible length are skipped.
#
# It is required to have R/W access to these devices and at least RO access
# to all of the following resource files (containing physical addresses)
# of NVDIMM devices (only root can read them by default):
#
# /sys/bus/nd/devices/ndbus*/region*/resource
# /sys/bus/nd/devices/ndbus*/region*/dax*/resource
# /sys/bus/nd/devices/ndbus*/region*/pfn*/resource
# /sys/bus/nd/devices/ndbus*/region*/namespace*/resource
#
# Note: some tests require write access to '/sys/bus/nd/devices/region*/deep_flush'.
#
#DEVICE_DAX_PATH=(/dev/dax0.0 /dev/dax1.0)

#
# Overwrite default test type:
# check (default), short, medium, long, all
# where: check = short + medium; all = short + medium + long
#
#TEST_TYPE=check

#
# Overwrite available build types:
# debug, nondebug, static_debug, static_nondebug, all (default)
#
#TEST_BUILD=all

#
# Overwrite available filesystem types:
# pmem, non-pmem, any, none, all (default)
#
#TEST_FS=all

#
# Overwrite default timeout
# (floating point number with an optional suffix: 's' for seconds (the default),
# 'm' for minutes, 'h' for hours or 'd' for days)
#
#TEST_TIMEOUT=3m

#
# To display execution time of each test
#
TM=1

#
# Normally the first failed test terminates the test run. If KEEP_GOING
# is set, continues executing all tests. If any tests fail, once all tests
# have completed reports number of failures, lists failed tests and exits
# with error status.
#
#KEEP_GOING=y

#
# This option works only if KEEP_GOING=y, then if CLEAN_FAILED is set
# all data created by test is removed on test failure.
#
#CLEAN_FAILED=y

#
# Changes logging level. Possible values:
# 0 - silent (only error messages)
# 1 - normal (above + SETUP + START + DONE + PASS + important SKIP messages)
# 2 - verbose (above + all SKIP messages + stdout from test binaries)
#
#UNITTEST_LOG_LEVEL=1

#
# Test against installed libraries, NOT the one built in tree.
# Note that these variable won't affect tests that link statically. You should
# disabled them using TEST_BUILD variable.
#
#PMDK_LIB_PATH_NONDEBUG=/usr/lib/x86_64-linux-gnu/
#PMDK_LIB_PATH_DEBUG=/usr/lib/x86_64-linux-gnu/pmdk_dbg

#
# Tests using the 'sudo' command can be potentially very harmful,
# so they have to be enabled deliberately.
#
#ENABLE_SUDO_TESTS=y

#
# Enable and select the type of tests for code handling bad blocks.
# Options: nfit_test, real_pmem, none (do not run, default).
#
# Running tests on emulated memory ('nfit test' option) requires 'nfit_test'
# kernel module to be present in the system.
# See https://github.com/pmem/ndctl#unit-tests
#
# If the 'real_pmem' option is enabled, tests are run on real hardware
# provided through PMEM_FS_DIR or DEVICE_DAX_PATH config fields.
#
# The tests use 'sudo' command many times and, in case of tests on
# emulated memory, insert the 'nfit_test' kernel module, so they can be
# considered as POTENTIALLY DANGEROUS and have to be explicitly enabled.
# Enable them ONLY IF you are sure you know what you are doing.
#
# As of kernel 4.20, the nfit-test module causes kernel oops whenever a devdax
# namespace is created and then accessed for the first time. This causes several
# of badblock-related unit tests to fail.
#
# BADBLOCK_TEST_TYPE=none
