aboutsummaryrefslogtreecommitdiff
path: root/tests/ubi-tests/stress-test.sh
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2016-07-13 16:10:28 +0200
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2016-11-17 11:36:55 +0100
commit8a00021b2ab5529640e5acaca30a27cdaca04178 (patch)
tree0944317c3e431143eedca84429348334a725e716 /tests/ubi-tests/stress-test.sh
parentd39ea7019cb204420c53a203ff9ccbb4cab0d4b3 (diff)
Integrate tests into autotools build system
Add automake files for the test binaries. If configured to do so, install the test binaries to libexec/mtd-utils and use autoconf to fix the paths in the test scripts. Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at> Signed-off-by: Richard Weinberger <richard@nod.at>
Diffstat (limited to 'tests/ubi-tests/stress-test.sh')
-rwxr-xr-xtests/ubi-tests/stress-test.sh212
1 files changed, 0 insertions, 212 deletions
diff --git a/tests/ubi-tests/stress-test.sh b/tests/ubi-tests/stress-test.sh
deleted file mode 100755
index a150495..0000000
--- a/tests/ubi-tests/stress-test.sh
+++ /dev/null
@@ -1,212 +0,0 @@
-#!/bin/sh -euf
-
-srcdir="$(readlink -ev -- ${0%/*})"
-PATH="$srcdir:$srcdir/../..:$PATH"
-
-fatal()
-{
- echo "Error: $1" 1>&2
- exit 1
-}
-
-usage()
-{
- cat 1>&2 <<EOF
-Stress-test an UBI device. This test is basically built on top of
-'runtests.sh' and runs it several times for different configurations.
-
-The nandsim and mtdram drivers have to be compiled as kernel modules.
-
-Usage:
- ${0##*/} run
-EOF
-}
-
-cleanup_handler()
-{
- local ret="$1"
- rmmod ubi >/dev/null 2>&1 ||:
- rmmod nandsim >/dev/null 2>&1 ||:
- rmmod mtdram >/dev/null 2>&1 ||:
-
- # Below is magic to exit with correct exit code
- if [ "$ret" != "0" ]; then
- trap false EXIT
- else
- trap true EXIT
- fi
-}
-trap 'cleanup_handler $?' EXIT
-trap 'cleanup_handler 1' HUP PIPE INT QUIT TERM
-
-# Find MTD device number by pattern in /proc/mtd
-# Usage: find_mtd_device <pattern>
-find_mtd_device()
-{
- printf "%s" "$(grep "$1" /proc/mtd | sed -e "s/^mtd\([0-9]\+\):.*$/\1/")"
-}
-
-# Just print parameters of the 'run_test' funcion in a user-friendly form.
-print_params()
-{
- local module="$1"; shift
- local size="$1"; shift
- local peb_size="$1"; shift
- local page_size="$1"; shift
- local vid_offs="$1"; shift
- local fastmap="$1"; shift
-
- printf "%s" "$module: ${size}MiB, PEB size ${peb_size}KiB, "
- if [ "$module" = "nandsim" ]; then
- printf "%s" "page size ${page_size}KiB, VID offset $vid_offs, "
- fi
- printf "%s\n" "fastmap $fastmap"
-}
-
-# Load mtdram with specified size and PEB size
-# Usage: load_mtdram <flash size> <PEB size>
-# 1. Flash size is specified in MiB
-# 2. PEB size is specified in KiB
-load_mtdram()
-{
- local size="$1"; shift
- local peb_size="$1"; shift
-
- size="$(($size * 1024))"
- modprobe mtdram total_size="$size" erase_size="$peb_size" ||
- echo "Error: cannot load $size MiB mtdram"
-}
-
-print_separator()
-{
- echo "======================================================================"
-}
-
-# Run a test on nandsim or mtdram with certain geometry.
-# Usage: run_test <nandsim|mtdram> <flash size> <PEB size> \
-# <Page size> <VID hdr offs> <enable fastmap>
-# 1. Simulator type (nandsim or mtdram)
-# 2. Flash size is specified in MiB
-# 3. PEB size is specified in KiB
-# 4. Page size is specified in bytes (mtdram ingores this)
-# 5. VID header offset (mtdram ingores this)
-# 6. Whether fast-map should be enabled (pass "enabled" or "disabled")
-run_test()
-{
- local module="$1";
- local size="$2";
- local peb_size="$3";
- local page_size="$4";
- local vid_offs="$5"
- local fastmap="$6";
- local fm_supported fm_param mtdnum
-
- print_separator
-
- # Check if fastmap is supported by UBI
- if modinfo ubi | grep -q fm_auto; then
- fm_supported="yes"
- else
- fm_supported="no"
- fi
-
- if [ "$fastmap" = "enabled" ]; then
- fm_param=
- elif [ "$fm_supported" = "yes" ]; then
- fastmap="disabled"
- fm_param="fm_auto"
- else
- echo "Fastmap is not supported, skip"
- return 0
- fi
-
- if [ "$module" = "nandsim" ]; then
- print_params "$@"
-
- load_nandsim.sh "$size" "$peb_size" "$page_size" ||
- echo "Cannot load nandsim, test skipped"
-
- mtdnum="$(find_mtd_device "$nandsim_patt")"
- elif [ "$module" = "mtdram" ]; then
- print_params "$@"
-
- load_mtdram "$size" "$peb_size"
-
- mtdnum="$(find_mtd_device "$mtdram_patt")"
- else
- fatal "$module is not supported" ||
- echo "Cannot load nandsim, test skipped"
- fi
-
- modprobe ubi mtd="$mtdnum,$vid_offs" $fm_param
- runtests.sh /dev/ubi0 ||:
-
- sudo rmmod ubi
- sudo rmmod "$module"
-}
-
-if [ "$#" -lt 1 ] || [ "$1" != "run" ]; then
- usage
- exit 1
-fi
-
-# Make sure neither mtdram nor nandsim are used
-nandsim_patt="NAND simulator"
-mtdram_patt="mtdram test device"
-if [ -e /proc/mtd ]; then
- ! grep -q "$nandsim_patt" /proc/mtd ||
- fatal "the nandsim driver is already used"
- ! grep -q "$mtdram_patt" /proc/mtd ||
- fatal "the mtdram driver is already used"
-fi
-
-rmmod ubi >/dev/null 2>&1 ||:
-
-for module in "mtdram" "nandsim"; do
- for fm in "enabled" "disabled"; do
- for vid_factor in 1 0; do
- print_separator
- print_separator
- print_separator
- echo "Test on $module, fastmap $fm, VID header offset factor $vid_factor"
- print_separator
- print_separator
-
- pg_size="512"
- vid_offs="$(($pg_size * $vid_factor))"
-
- run_test "$module" "16" "16" "$pg_size" "$vid_offs" "$fm"
- run_test "$module" "32" "16" "$pg_size" "$vid_offs" "$fm"
- run_test "$module" "64" "16" "$pg_size" "$vid_offs" "$fm"
- run_test "$module" "128" "16" "$pg_size" "$vid_offs" "$fm"
- run_test "$module" "256" "16" "$pg_size" "$vid_offs" "$fm"
-
- pg_size="2048"
- vid_offs="$(($pg_size * $vid_factor))"
-
- run_test "$module" "64" "64" "$pg_size" "$vid_offs" "$fm"
- run_test "$module" "128" "64" "$pg_size" "$vid_offs" "$fm"
- run_test "$module" "256" "64" "$pg_size" "$vid_offs" "$fm"
- run_test "$module" "512" "64" "$pg_size" "$vid_offs" "$fm"
- run_test "$module" "1024" "64" "$pg_size" "$vid_offs" "$fm"
-
- run_test "$module" "64" "128" "$pg_size" "$vid_offs" "$fm"
- run_test "$module" "128" "128" "$pg_size" "$vid_offs" "$fm"
- run_test "$module" "256" "128" "$pg_size" "$vid_offs" "$fm"
- run_test "$module" "512" "128" "$pg_size" "$vid_offs" "$fm"
- run_test "$module" "1024" "128" "$pg_size" "$vid_offs" "$fm"
-
- run_test "$module" "64" "256" "$pg_size" "$vid_offs" "$fm"
- run_test "$module" "128" "256" "$pg_size" "$vid_offs" "$fm"
- run_test "$module" "256" "256" "$pg_size" "$vid_offs" "$fm"
- run_test "$module" "512" "256" "$pg_size" "$vid_offs" "$fm"
- run_test "$module" "1024" "256" "$pg_size" "$vid_offs" "$fm"
-
- run_test "$module" "64" "512" "$pg_size" "$vid_offs" "$fm"
- run_test "$module" "128" "512" "$pg_size" "$vid_offs" "$fm"
- run_test "$module" "256" "512" "$pg_size" "$vid_offs" "$fm"
- run_test "$module" "512" "512" "$pg_size" "$vid_offs" "$fm"
- run_test "$module" "1024" "512" "$pg_size" "$vid_offs" "$fm"
- done
- done
-done