]> git.proxmox.com Git - mirror_edk2.git/blame - AppPkg/Applications/OrderedCollectionTest/gentest.sh
AppPkg: introduce OrderedCollectionTest
[mirror_edk2.git] / AppPkg / Applications / OrderedCollectionTest / gentest.sh
CommitLineData
424d8455
LE
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
20set -e -u -C
21
22RANGE_START=0
23RANGE_STOP=9999
24
25gen_rnd_insert()
26{
27 shuf --input-range=$RANGE_START-$RANGE_STOP | sed 's/^/insert /'
28}
29
30gen_rnd_delete()
31{
32 shuf --input-range=$RANGE_START-$RANGE_STOP | sed 's/^/delete /'
33}
34
35gen_mon_inc_insert()
36{
37 seq $RANGE_START $RANGE_STOP | sed 's/^/insert /'
38}
39
40gen_mon_inc_delete()
41{
42 seq $RANGE_START $RANGE_STOP | sed 's/^/delete /'
43}
44
45gen_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