#! /bin/sh # regression test for creating a table with a set of adjacent # mappings. . ${TEST_ROOT}/etc/dm_tools.sh usage() { echo "Usage: $0 " } case $# in 4) dev=$1 count=$2 chunk=$3 offset=$4 ;; *) usage; exit 1;; esac devname=contiguous # Generate the tables single_target="0 `expr $count \* $chunk` linear $dev $offset" loffset=0 table="" while [ $count -gt 0 ]; do if [ -n "$table" ]; then table="${table}\n" fi table="${table}$loffset $chunk linear $dev $offset" loffset=`expr $loffset + $chunk` offset=`expr $offset + $chunk` count=`expr $count - 1` done # create the device remove_quietly $devname info "create device" push_level create $devname $table pop_level info "stamp pattern" push_level pattern=`date +%s` stamp_pattern $devname $pattern pop_level info "reload with suspend" push_level suspend $devname reload $devname $table verify_pattern $devname $pattern pop_level info "reload without suspend" push_level reload $devname $table verify_pattern $devname $pattern pop_level info "remove and recreate" push_level remove $devname create $devname $table verify_pattern $devname $pattern pop_level info "single target equivalence" push_level remove $devname create $devname $single_target verify_pattern $devname $pattern pop_level # remove remove $devname succeed ok # FIXME: add an at exit to destroy the device on fatal