diff options
Diffstat (limited to 'ubi-utils/sort-me-out/ubi_test.sh')
-rwxr-xr-x | ubi-utils/sort-me-out/ubi_test.sh | 328 |
1 files changed, 0 insertions, 328 deletions
diff --git a/ubi-utils/sort-me-out/ubi_test.sh b/ubi-utils/sort-me-out/ubi_test.sh deleted file mode 100755 index 73e4b19..0000000 --- a/ubi-utils/sort-me-out/ubi_test.sh +++ /dev/null @@ -1,328 +0,0 @@ -#!/bin/sh -# -# UBI Volume creation/deletion/write/read test script -# -# Written in shell language to reduce dependencies to more sophisticated -# interpreters, which may not be available on some stupid platforms. -# -# Author: Frank Haverkamp <haver@vnet.ibm.com> -# -# 1.0 Initial version -# 1.1 Use ubiupdatevol instead of ubiwritevol -# - -VERSION="1.1" - -export PATH=$PATH:~/bin:/usr/local/bin:/home/dedekind/work/prj/ubi/tools/flashutils/bin/ - -UBIMKVOL=ubimkvol -UBIRMVOL=ubirmvol -UBIUPDATEVOL=ubiupdatevol - -# 128 KiB 131072 -# 256 KiB 262144 -# 512 KiB 524288 - -SIZE_512K=524288 -SIZE_1M=1310720 - -SELF=$0 -MINVOL=10 -MAXVOL=12 - -# -# To have a standardized output I define the following function to be -# used when a test was ok or when it failed. -# -failed () -{ - echo "FAILED" -} - -passed () -{ - echo "PASSED" -} - -# -# Print sucess message. Consider to exit with zero as return code. -# -exit_success () -{ - echo "SUCCESS" - exit 0 -} - -# -# Print failure message. Consider to exit with non zero return code. -# -exit_failure () -{ - echo "FAILED" - exit 1 -} - -############################################################################### -# -# START -# -############################################################################### - -fix_sysfs_issue () -{ - echo -n "*** Fixing the sysfs issue with the /dev nodes ... " - - minor=0 - major=`grep ubi0 /proc/devices | sed -e 's/\(.*\) ubi0/\1/'` - - rm -rf /dev/ubi0 - mknod /dev/ubi0 c $major 0 - - for minor in `seq 0 $MAXVOL`; do - ### echo " mknod /dev/ubi0_$minor c $major $(($minor + 1))" - rm -rf /dev/ubi0_$minor - mknod /dev/ubi0_$minor c $major $(($minor + 1)) - done - passed -} - -# delete_volume - Delete a volume. If it does not exist, do not try -# to delete it. -# @id: volume id -# -delete_volume () -{ - volume=$1 - - ### FIXME broken sysfs!!!! - if [ -e /sys/class/ubi/$volume -o -e /sys/class/ubi/ubi0/$volume -o -e /sys/class/ubi/ubi0_$volume ]; then - - echo -n "*** Truncate volume if it exists ... " - $UBIUPDATEVOL -d0 -n$volume -t - if [ $? -ne "0" ] ; then - exit_failure - fi - passed - - echo -n "*** Delete volume if it exists ... " - $UBIRMVOL -d0 -n$volume - if [ $? -ne "0" ] ; then - exit_failure - fi - passed - fi -} - -mkvol_rmvol_test () -{ - type=$1 - -### Test if volume delete on non-existing volumes fails nicely - - for i in `seq $MINVOL $MAXVOL`; do - echo "*** Delete if exist or not $i ... " - - delete_volume $i - passed - done - -### Now deleting volumes must fail - - for i in `seq $MINVOL $MAXVOL`; do - echo "*** Trying to delete non existing UBI Volume $i ... " - - $UBIRMVOL -d0 -n$i - if [ $? -eq "0" ] ; then - exit_failure - fi - passed - done - -### Test if volume creation works ok - - for i in `seq $MINVOL $MAXVOL`; do - echo "*** Creating UBI Volume $i ... " - echo " $UBIMKVOL -d0 -n$i -t$type -NNEW$i -s $SIZE_512K" - - $UBIMKVOL -d0 -n$i -t$type -N"NEW$i" -s $SIZE_512K - if [ $? -ne "0" ] ; then - exit_failure - fi - passed - done - -### Now deleting volumes must be ok - - for i in `seq $MINVOL $MAXVOL`; do - echo "*** Trying to delete UBI Volume $i ... " - - $UBIRMVOL -d0 -n$i - if [ $? -ne "0" ] ; then - exit_failure - fi - passed - done - -### Now allocate too large volume - - echo -n "*** Try to create too large volume" - $UBIMKVOL -d0 -n$MINVOL -t$type -N"NEW$MINVOL" -s 800000000 - if [ $? -eq "0" ] ; then - exit_failure - fi - passed -} - -# writevol_test - Tests volume creation and writing data to it. -# -# @size: Size of random data to write -# @type: Volume type static or dynamic -# -writevol_test () -{ - size=$1 - type=$2 - - echo "*** Write volume test with size $size" - -### Make sure that volume exist, delete existing volume, create new - - delete_volume $MINVOL - - echo -n "*** Try to create volume ... " - $UBIMKVOL -d0 -n$MINVOL -t$type -N"NEW$MINVOL" -s $SIZE_1M - if [ $? -ne "0" ] ; then - exit_failure - fi - passed - -### Try to create same volume again - echo -n "*** Try to create some volume again, this must fail ... " - $UBIMKVOL -d0 -n$MINVOL -t$type -N"NEW$MINVOL" -s $SIZE_1M - if [ $? -eq "0" ] ; then - exit_failure - fi - passed - -### Now create test data, write it, read it, compare it - echo -n "*** Create test data ... " - dd if=/dev/urandom of=testdata.bin bs=$size count=1 - if [ $? -ne "0" ] ; then - exit_failure - fi - passed - - echo "*** Now writing data to volume ... " - # sleep 5 - ls -l testdata.bin - echo " $UBIUPDATEVOL -d0 -n$MINVOL testdata.bin" - $UBIUPDATEVOL -d0 -n$MINVOL testdata.bin - if [ $? -ne "0" ] ; then - exit_failure - fi - passed - - if [ $type = "static" ] ; then - echo "*** Download data with cat ... " - cat /dev/ubi0_$MINVOL > readdata.bin - if [ $? -ne "0" ] ; then - exit_failure - fi - passed - else - echo "*** Download data with dd bs=1 ... " - dd if=/dev/ubi0_$MINVOL of=readdata.bin bs=$size count=1 - if [ $? -ne "0" ] ; then - exit_failure - fi - passed - - # Size 1 does not work with this test ... - # - #echo "*** Download data with dd bs=$size ... " - #dd if=/dev/ubi0_$MINVOL of=readdata2.bin bs=$size count=1 - #if [ $? -ne "0" ] ; then - # exit_failure - #fi - #passed - - #echo -n "*** Comparing data (1) ... " - #cmp readdata.bin readdata2.bin - #if [ $? -ne "0" ] ; then - # exit_failure - #fi - #passed - fi - - echo -n "*** Comparing data ... " - cmp readdata.bin testdata.bin - if [ $? -ne "0" ] ; then - exit_failure - fi - passed -} - -echo "***********************************************************************" -echo "* UBI Testing starts now ... *" -echo "* Good luck! *" -echo "***********************************************************************" - -# Set to zero if not running on example hardware -grep ubi /proc/devices > /dev/null -if [ $? -ne "0" ]; then - echo "No UBI found in /proc/devices! I am broken!" - exit_failure -fi - -# Set to zero if not running on example hardware -grep 1142 /proc/cpuinfo > /dev/null -if [ $? -eq "0" ]; then - echo "Running on example hardware" - mount -o remount,rw / / - sleep 1 - fix_sysfs_issue -else - echo "Running on Artems hardware" -fi - -echo "***********************************************************************" -echo "* mkvol/rmvol testing for static volumes ... *" -echo "***********************************************************************" - -mkvol_rmvol_test static - -echo "***********************************************************************" -echo "* mkvol/rmvol testing for dynamic volumes ... *" -echo "***********************************************************************" - -mkvol_rmvol_test dynamic - -echo "***********************************************************************" -echo "* write to static volumes ... *" -echo "***********************************************************************" - -# 10 Erase blocks = (128 KiB - 64 * 2) * 10 -# = 1309440 bytes -# 128 KiB 131072 -# 256 KiB 262144 -# 512 KiB 524288 - -for size in 262144 131073 131072 2048 1 4096 12800 31313 ; do - writevol_test $size static -done - -echo "***********************************************************************" -echo "* write to dynamic volumes ... *" -echo "***********************************************************************" -echo "VERSION: $VERSION" - -for size in 131073 131072 2048 1 4096 12800 31313 262144 ; do - writevol_test $size dynamic -done - -echo "***********************************************************************" -echo "* Congratulations, no errors found! *" -echo "* Have fun with your cool UBI system! *" -echo "***********************************************************************" - -exit_success |