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
87