#!/usr/bin/bash
set ${MMTESTS_SH_DEBUG:-+x}

export SCRIPT=`basename $0 | sed -e 's/\./\\\./'`
export SCRIPTDIR=`echo $0 | sed -e "s/$SCRIPT//"`/..
cd $SCRIPTDIR/configs || exit

NOATIME_FSCONFIGS="
config-db-pgbench-timed-ro-large
config-db-pgbench-timed-ro-medium
config-db-pgbench-timed-ro-scale1
config-db-pgbench-timed-ro-small
config-db-pgbench-timed-rw-large
config-db-pgbench-timed-rw-medium
config-db-pgbench-timed-rw-scale1
config-db-pgbench-timed-rw-small
config-db-pgbench-timed-ro-medium-tuned
config-db-pgbench-timed-ro-small-tuned
config-db-pgbench-timed-rw-medium-tuned
config-db-pgbench-timed-rw-small-tuned
config-db-sysbench-mariadb-oltp-ro-medium
config-db-sysbench-mariadb-oltp-ro-small
config-db-sysbench-mariadb-oltp-rw-medium
config-db-sysbench-mariadb-oltp-rw-small
config-db-sysbench-postgres-oltp-ro-medium
config-db-sysbench-postgres-oltp-ro-small
config-db-sysbench-postgres-oltp-rw-medium
config-db-sysbench-postgres-oltp-rw-small
config-io-pgioperf
config-workload-usemem
"

RAMCONFIGS="
"

DEADLINE_FSCONFIGS="
config-io-fio-randread-async-randwrite
config-io-fio-randread-async-seqwrite
config-io-fio-randread-sync-heavywrite
config-io-fio-randread-sync-randwrite
"

FSCONFIGS="
config-db-sqlite-insert-medium
config-db-sqlite-insert-small
config-functional-ltp-cve
config-functional-ltp-dio_truncate
config-functional-ltp-lite
config-functional-xfstests-auto
config-hpc-nas-mpi-bind-full
config-hpc-nas-mpi-bind-half
config-hpc-nas-mpi-bind-pair
config-hpc-nas-mpi-bind-quarter
config-hpc-nas-mpi-bind-quartet
config-hpc-nas-mpi-bind-third
config-hpc-nas-mpi-full
config-hpc-nas-mpi-half
config-hpc-nas-mpi-pair
config-hpc-nas-mpi-quarter
config-hpc-nas-mpi-quartet
config-hpc-nas-mpi-third
config-hpc-parsec-pthreads-full
config-hpc-parsec-pthreads-half
config-http-apachebench
config-io-blogbench
config-io-bonniepp-dir-async
config-io-bonniepp-dir-fsync
config-io-bonniepp-file-async
config-io-bonniepp-file-fsync
config-io-dbench4-async
config-io-dbench4-fsync
config-io-filebench-oltp-directio-medium
config-io-filebench-oltp-directio-small
config-io-filebench-oltp-medium
config-io-filebench-oltp-small
config-io-filebench-varmail-medium
config-io-filebench-varmail-small
config-io-filebench-webproxy-medium
config-io-filebench-webproxy-small
config-io-filebench-webserver-medium
config-io-filebench-webserver-small
config-io-fio-randread-async-randwrite
config-io-fio-randread-async-seqwrite
config-io-fio-randread-direct-multi
config-io-fio-randread-doublemem-32k-4t
config-io-fio-randread-doublemem-4k-4t
config-io-fio-randread-sync-heavywrite
config-io-fio-randread-sync-randwrite
config-io-fio-scaling
config-io-fio-seqread-doublemem-32k-4t
config-io-fio-seqread-doublemem-4k-4t
config-io-fio-ssd
config-io-fio-sync-maxrandwrite
config-io-fsmark-small-file-stream
config-io-fsmark-xfsrepair
config-io-paralleldd-read-large
config-io-paralleldd-read-large-multi
config-io-paralleldd-read-small
config-io-paralleldd-read-small-multi
config-io-sparsetruncate-small
config-io-S-startup
config-io-trunc
config-io-xfsio
config-io-xfsrepair
config-memdb-redis-benchmark-small
config-memdb-redis-benchmark-medium
config-memdb-redis-benchmark-large
config-memdb-redis-memtier-small
config-memdb-redis-memtier-medium
config-memdb-redis-memtier-large
config-multi-kernbench__netperf-tcp-rr-multipair
config-pagereclaim-stutterp
config-pagereclaim-stutterp-noreaders
config-reaim-highsys
config-reaim-io-alltests
config-reaim-io-compute
config-reaim-io-disk
config-reaim-io-disk-large
config-reaim-io-new_dbase
config-reaim-io-new_fserver-large
config-reaim-io-shared
config-reaim-stress
config-speccpu2017-rate-parallel-full
config-speccpu2017-rate-parallel-half
config-speccpu2017-rate-parallel-quarter
config-speccpu2017-speed
config-speccpu2017-speed-parallel-full
config-speccpu2017-speed-parallel-half
config-speccpu2017-speed-parallel-quarter
config-workload-cyclictest-fine-kernel-build
config-workload-cyclictest-kernel-build
config-workload-dedup
config-workload-gnupg
config-workload-kernbench-max
config-workload-kerndevel
config-workload-kvmstart-memhog-frag-fio-randread
config-workload-kvmstart-memhog-frag-singlefile
config-workload-kvmstart-memhog-frag-singlefile-nothp
config-workload-libmicro-file
config-workload-mailserver
config-workload-pedsort
config-workload-pedsort-light
config-workload-shellscripts
config-workload-simoop-short
config-workload-stressng-class-io-parallel
config-workload-thpchallenge-fio
config-workload-thpchallenge-fio-defrag
config-workload-thpchallenge-fio-madvhugepage
config-workload-thpchallenge-kernel-build
config-workload-thpchallenge-kernel-build-defrag
config-workload-thpchallenge-kernel-build-madvhugepage
config-workload-thpcompact
config-workload-thpcompact-defrag
config-workload-thpcompact-madvhugepage
config-workload-unixbench-io-fsbuffer
config-workload-unixbench-io-fsdisk
config-workload-unixbench-io-fstime
config-workload-will-it-scale-io-processes
config-workload-will-it-scale-io-threads
"

mv config-io-fio-io_uring-randread-direct-nullb config-io-fio-io_uring-randread-direct-namespace-conflict
rm -f *-ext3 *-ext4 *-btrfs *-btrfs-nocow *-xfs *-raid0 *-raid1 *-raid5 *-nullb
mv config-io-fio-io_uring-randread-direct-namespace-conflict config-io-fio-io_uring-randread-direct-nullb

check_io_config() {
	grep -q TESTDISK_ $CONFIG
	if [ $? -ne 0 ]; then
		echo WARNING: $CONFIG does not have TESTDISK_ templates
	fi
}

for CONFIG in $RAMCONFIGS; do
	check_io_config
	if [ ! -e $CONFIG ]; then
		echo Missing: $CONFIG
		continue
	fi

	cat $CONFIG | sed \
		-e 's/.*export TESTDISK_PARTITION.*/export TESTDISK_PARTITION=\/dev\/ram0/' \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=ext3/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM=/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=barrier=0/' \
			> $CONFIG-ext3

	cat $CONFIG | sed \
		-e 's/.*export TESTDISK_PARTITION.*/export TESTDISK_PARTITION=\/dev\/ram0/' \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=ext4/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM="-F -E lazy_itable_init=0"/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=barrier=0/' \
			> $CONFIG-ext4

	cat $CONFIG | sed \
		-e 's/.*export TESTDISK_PARTITION.*/export TESTDISK_PARTITION=\/dev\/ram0/' \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=btrfs/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM="-f"/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=nobarrier/' \
			> $CONFIG-btrfs

	cat $CONFIG | sed \
		-e 's/.*export TESTDISK_PARTITION.*/export TESTDISK_PARTITION=\/dev\/ram0/' \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=btrfs/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM="-f"/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=nobarrier,nodatacow/' \
			> $CONFIG-btrfs-nocow

	cat $CONFIG | sed \
		-e 's/.*export TESTDISK_PARTITION.*/export TESTDISK_PARTITION=\/dev\/ram0/' \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=xfs/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM="-f"/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=/' \
			> $CONFIG-xfs

#	for FS in ext3 ext4 btrfs xfs; do
#		sed -i '/export TESTDISK_RD_PREALLOC/d' ${CONFIG}-$FS
#		sed -i '/export TESTDISK_RD_PREALLOC_NODE/d' ${CONFIG}-$FS
#		sed -i '/export TESTDISK_RD_SIZE/d' ${CONFIG}-$FS
#
#		echo >> ${CONFIG}-$FS
#		echo '# Use 1/5 of NUMA node size to leave space for pagecache and other stuff' >> ${CONFIG}-$FS
#		echo '# Also note we may be on UMA machine after all' >> ${CONFIG}-$FS
#		echo 'export TESTDISK_RD_PREALLOC=yes' >> ${CONFIG}-$FS
#		echo 'export TESTDISK_RD_PREALLOC_NODE=${MMTESTS_NODE_ID_BY_SIZE[$((NUMNODES-1))]}' >> ${CONFIG}-$FS
#		echo 'export TESTDISK_RD_SIZE=$((${MMTESTS_NODE_SIZE[$TESTDISK_RD_PREALLOC_NODE]}/5))' >> ${CONFIG}-$FS
#	done
done
TESTDISK_PARTITION="/dev/sdaNN"
if [ -e $HOME/.mmtests-test-partition ]; then
	CHECK_PARTITION=`cat $HOME/.mmtests-test-partition 2>/dev/null`
	if [ "$CHECK_PARTITION" != "" -a -e "$CHECK_PARTITION" ]; then
		TESTDISK_PARTITION=$CHECK_PARTITION
	fi
fi
for CONFIG in $FSCONFIGS; do
	check_io_config
	if [ ! -e $CONFIG ]; then
		echo Missing: $CONFIG
		continue
	fi
	cat $CONFIG | sed \
		-e "s@.*export TESTDISK_PARTITION.*@export TESTDISK_PARTITION=$TESTDISK_PARTITION@" \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=ext3/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM=/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=barrier=0/' \
			> $CONFIG-ext3

	cat $CONFIG | sed \
		-e "s@.*export TESTDISK_PARTITION.*@export TESTDISK_PARTITION=$TESTDISK_PARTITION@" \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=ext4/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM="-F -E lazy_itable_init=0"/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=barrier=0/' \
			> $CONFIG-ext4

	cat $CONFIG | sed \
		-e "s@.*export TESTDISK_PARTITION.*@export TESTDISK_PARTITION=$TESTDISK_PARTITION@" \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=btrfs/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM="-f"/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=nobarrier/' \
			> $CONFIG-btrfs

	cat $CONFIG | sed \
		-e "s@.*export TESTDISK_PARTITION.*@export TESTDISK_PARTITION=$TESTDISK_PARTITION@" \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=btrfs/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM="-f"/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=nobarrier,nodatacow/' \
			> $CONFIG-btrfs-nocow

	cat $CONFIG | sed \
		-e "s@.*export TESTDISK_PARTITION.*@export TESTDISK_PARTITION=$TESTDISK_PARTITION@" \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=xfs/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM="-f"/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=/' \
			> $CONFIG-xfs

done
for CONFIG in $DEADLINE_FSCONFIGS; do
	check_io_config
	if [ ! -e $CONFIG ]; then
		echo Missing: $CONFIG
		continue
	fi
	OUT_CONFIG=`echo $CONFIG | sed -e 's/^config-io-/config-io-deadline-/'`
	cat $CONFIG | sed \
		-e "s@.*export TESTDISK_PARTITION.*@export TESTDISK_PARTITION=$TESTDISK_PARTITION@" \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=ext3/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM=/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=barrier=0/' \
			> $OUT_CONFIG-ext3

	cat $CONFIG | sed \
		-e "s@.*export TESTDISK_PARTITION.*@export TESTDISK_PARTITION=$TESTDISK_PARTITION@" \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=ext4/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM="-F -E lazy_itable_init=0"/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=barrier=0/' \
			> $OUT_CONFIG-ext4

	cat $CONFIG | sed \
		-e "s@.*export TESTDISK_PARTITION.*@export TESTDISK_PARTITION=$TESTDISK_PARTITION@" \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=btrfs/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM="-f"/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=nobarrier/' \
			> $OUT_CONFIG-btrfs

	cat $CONFIG | sed \
		-e "s@.*export TESTDISK_PARTITION.*@export TESTDISK_PARTITION=$TESTDISK_PARTITION@" \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=btrfs/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM="-f"/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=nobarrier,nodatacow/' \
			> $OUT_CONFIG-btrfs-nocow

	cat $CONFIG | sed \
		-e "s@.*export TESTDISK_PARTITION.*@export TESTDISK_PARTITION=$TESTDISK_PARTITION@" \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=xfs/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM="-f"/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=/' \
			> $OUT_CONFIG-xfs
	echo "export TESTDISK_IO_SCHEDULER=deadline" >> $OUT_CONFIG-ext3
	echo "export TESTDISK_IO_SCHEDULER=deadline" >> $OUT_CONFIG-ext4
	echo "export TESTDISK_IO_SCHEDULER=deadline" >> $OUT_CONFIG-btrfs
	echo "export TESTDISK_IO_SCHEDULER=deadline" >> $OUT_CONFIG-btrfs-nocow
	echo "export TESTDISK_IO_SCHEDULER=deadline" >> $OUT_CONFIG-xfs
done

for CONFIG in $NOATIME_FSCONFIGS; do
	check_io_config
	if [ ! -e $CONFIG ]; then
		echo Missing: $CONFIG
		continue
	fi
	OUT_CONFIG=`echo $CONFIG | sed -e 's/^config-/config-deadline-/'`
	cat $CONFIG | sed \
		-e "s@.*export TESTDISK_PARTITION.*@export TESTDISK_PARTITION=$TESTDISK_PARTITION@" \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=ext3/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM=/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=barrier=0,noatime/' \
			> $CONFIG-ext3

	cat $CONFIG | sed \
		-e "s@.*export TESTDISK_PARTITION.*@export TESTDISK_PARTITION=$TESTDISK_PARTITION@" \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=ext4/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM="-F -E lazy_itable_init=0"/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=barrier=0,noatime/' \
			> $CONFIG-ext4

	cat $CONFIG | sed \
		-e "s@.*export TESTDISK_PARTITION.*@export TESTDISK_PARTITION=$TESTDISK_PARTITION@" \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=btrfs/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM="-f"/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=noatime,nobarrier/' \
			> $CONFIG-btrfs

	cat $CONFIG | sed \
		-e "s@.*export TESTDISK_PARTITION.*@export TESTDISK_PARTITION=$TESTDISK_PARTITION@" \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=btrfs/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM="-f"/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=noatime,nobarrier,nodatacow/' \
			> $CONFIG-btrfs-nocow


	cat $CONFIG | sed \
		-e "s@.*export TESTDISK_PARTITION.*@export TESTDISK_PARTITION=$TESTDISK_PARTITION@" \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=xfs/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM="-f"/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=noatime/' \
			> $CONFIG-xfs
done

LIMITMEM_CONFIGS="
"
for CONFIG in $LIMITMEM_CONFIGS; do
	check_io_config
	DESTCONFIG=`echo $CONFIG | sed -e 's/dhp__/dhp-2048M__/'`

	if [ ! -e $CONFIG ]; then
		echo Missing: $CONFIG
		continue
	fi

	cat $CONFIG | sed \
		-e "s@.*export TESTDISK_PARTITION.*@export TESTDISK_PARTITION=$TESTDISK_PARTITION@" \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=ext3/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM=/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=barrier=0/' \
			> $DESTCONFIG-ext3

	cat $CONFIG | sed \
		-e "s@.*export TESTDISK_PARTITION.*@export TESTDISK_PARTITION=$TESTDISK_PARTITION@" \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=ext4/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM="-F -E lazy_itable_init=0"/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=barrier=0,noatime/' \
			> $DESTCONFIG-ext4

	cat $CONFIG | sed \
		-e "s@.*export TESTDISK_PARTITION.*@export TESTDISK_PARTITION=$TESTDISK_PARTITION@" \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=btrfs/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM="-f"/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=nobarrier/' \
			> $DESTCONFIG-btrfs

	cat $CONFIG | sed \
		-e "s@.*export TESTDISK_PARTITION.*@export TESTDISK_PARTITION=$TESTDISK_PARTITION@" \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=xfs/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM="-f"/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=/' \
			> $DESTCONFIG-xfs
done

TMPFS_CONFIGS="
config-io-paralleldd-read-small
config-io-dbench4-async
config-pagereclaim-stutterp
config-reaim-io-disk
"

for CONFIG in $TMPFS_CONFIGS; do
	check_io_config
	if [ ! -e $CONFIG ]; then
		echo Missing: $CONFIG
		continue
	fi
	cat $CONFIG | sed \
		-e 's/.*export TESTDISK_PARTITION.*/export TESTDISK_PARTITION=none/' \
		-e 's/.*export TESTDISK_FILESYSTEM=.*/export TESTDISK_FILESYSTEM=tmpfs/' \
		-e 's/.*export TESTDISK_MKFS_PARAM=.*/export TESTDISK_MKFS_PARAM=/' \
		-e 's/.*export TESTDISK_MOUNT_ARGS=.*/export TESTDISK_MOUNT_ARGS=/' \
			> $CONFIG-tmpfs
done

for FS in xfs ext3 ext4 btrfs btrfs-nocow; do
	check_io_config
	for TYPE in rotary ssd; do
		for CONFIG in `ls config-*-$FS`; do
			cp $CONFIG $CONFIG-$TYPE-raid0
			cp $CONFIG $CONFIG-$TYPE-raid1
			cp $CONFIG $CONFIG-$TYPE-raid5
		done
	done
done


NULL_BLK_CONFIGS="
config-io-fio-randread-direct-multi
config-io-fio-randread-async-randwrite
config-io-fio-randread-async-seqwrite
config-io-fio-randread-sync-heavywrite
config-io-fio-randread-sync-randwrite
config-io-fio-sync-maxrandwrite
"

for CONFIG in ${NULL_BLK_CONFIGS} ; do
	check_io_config
	if [ ! -e $CONFIG ]; then
		echo Missing: $CONFIG
		continue
	fi

	cat $CONFIG | sed \
		-e 's/.*export TESTDISK_PARTITION.*/export TESTDISK_NULLB_DEVICE=yes/' \
		-e 's/.*export TESTDISK_NOMOUNT=.*/export TESTDISK_NOMOUNT=true/' \
		-e 's/.*export FIO_TEST_TYPE=.*/export FIO_TEST_TYPE=block/' \
			> $CONFIG-nullb
done
