1 ## @file 2 # Small test script generator for OrderedCollectionTest. 3 # 4 # Usage: 5 # - generate script: sh gentest.sh >input.txt 6 # - run script with tester: OrderedCollectionTest -i input.txt -o output.txt 7 # 8 # Copyright (C) 2014, Red Hat, Inc. 9 # 10 # This program and the accompanying materials are licensed and made available 11 # under the terms and conditions of the BSD License which accompanies this 12 # distribution. The full text of the license may be found at 13 # http://opensource.org/licenses/bsd-license. 14 # 15 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 16 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR 17 # IMPLIED. 18 ## 19 20 set -e -u -C 21 22 RANGE_START=0 23 RANGE_STOP=9999 24 25 gen_rnd_insert() 26 { 27 shuf --input-range=$RANGE_START-$RANGE_STOP | sed 's/^/insert /' 28 } 29 30 gen_rnd_delete() 31 { 32 shuf --input-range=$RANGE_START-$RANGE_STOP | sed 's/^/delete /' 33 } 34 35 gen_mon_inc_insert() 36 { 37 seq $RANGE_START $RANGE_STOP | sed 's/^/insert /' 38 } 39 40 gen_mon_inc_delete() 41 { 42 seq $RANGE_START $RANGE_STOP | sed 's/^/delete /' 43 } 44 45 gen_mon_dec_delete() 46 { 47 seq $RANGE_START $RANGE_STOP | tac | sed 's/^/delete /' 48 } 49 50 { 51 echo '# populate the tree in random order and empty it iterating forward' 52 gen_rnd_insert 53 echo forward-empty 54 55 echo 56 echo '# populate the tree in random order and empty it iterating backward' 57 gen_rnd_insert 58 echo backward-empty 59 60 echo 61 echo '# populate the tree in random order, list it in increasing and' 62 echo '# decreasing order, then empty it in random order' 63 gen_rnd_insert 64 echo forward-list 65 echo backward-list 66 gen_rnd_delete 67 68 echo 69 echo '# populate the tree in monotonically increasing order, then undo it' 70 echo '# piecewise in the same order' 71 gen_mon_inc_insert 72 gen_mon_inc_delete 73 74 echo 75 echo '# populate the tree in monotonically increasing order, then undo it' 76 echo '# piecewise in reverse order' 77 gen_mon_inc_insert 78 gen_mon_dec_delete 79 80 echo 81 echo '# populate the tree randomly, trigger a run of collisions, then exit' 82 echo '# and let CmdForwardEmpty() empty the tree' 83 gen_rnd_insert 84 gen_mon_inc_insert 85 } \ 86 | unix2dos 87