diff options
Diffstat (limited to 'AppPkg/Applications/OrderedCollectionTest/gentest.sh')
-rw-r--r-- | AppPkg/Applications/OrderedCollectionTest/gentest.sh | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/AppPkg/Applications/OrderedCollectionTest/gentest.sh b/AppPkg/Applications/OrderedCollectionTest/gentest.sh new file mode 100644 index 0000000000..535faa60b6 --- /dev/null +++ b/AppPkg/Applications/OrderedCollectionTest/gentest.sh @@ -0,0 +1,86 @@ +## @file +# Small test script generator for OrderedCollectionTest. +# +# Usage: +# - generate script: sh gentest.sh >input.txt +# - run script with tester: OrderedCollectionTest -i input.txt -o output.txt +# +# Copyright (C) 2014, Red Hat, Inc. +# +# This program and the accompanying materials are licensed and made available +# under the terms and conditions of the BSD License which accompanies this +# distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license. +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR +# IMPLIED. +## + +set -e -u -C + +RANGE_START=0 +RANGE_STOP=9999 + +gen_rnd_insert() +{ + shuf --input-range=$RANGE_START-$RANGE_STOP | sed 's/^/insert /' +} + +gen_rnd_delete() +{ + shuf --input-range=$RANGE_START-$RANGE_STOP | sed 's/^/delete /' +} + +gen_mon_inc_insert() +{ + seq $RANGE_START $RANGE_STOP | sed 's/^/insert /' +} + +gen_mon_inc_delete() +{ + seq $RANGE_START $RANGE_STOP | sed 's/^/delete /' +} + +gen_mon_dec_delete() +{ + seq $RANGE_START $RANGE_STOP | tac | sed 's/^/delete /' +} + +{ + echo '# populate the tree in random order and empty it iterating forward' + gen_rnd_insert + echo forward-empty + + echo + echo '# populate the tree in random order and empty it iterating backward' + gen_rnd_insert + echo backward-empty + + echo + echo '# populate the tree in random order, list it in increasing and' + echo '# decreasing order, then empty it in random order' + gen_rnd_insert + echo forward-list + echo backward-list + gen_rnd_delete + + echo + echo '# populate the tree in monotonically increasing order, then undo it' + echo '# piecewise in the same order' + gen_mon_inc_insert + gen_mon_inc_delete + + echo + echo '# populate the tree in monotonically increasing order, then undo it' + echo '# piecewise in reverse order' + gen_mon_inc_insert + gen_mon_dec_delete + + echo + echo '# populate the tree randomly, trigger a run of collisions, then exit' + echo '# and let CmdForwardEmpty() empty the tree' + gen_rnd_insert + gen_mon_inc_insert +} \ +| unix2dos |