5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions are
9 # * Redistributions of source code must retain the above copyright
10 # notice, this list of conditions and the following disclaimer.
12 # * Redistributions in binary form must reproduce the above copyright
13 # notice, this list of conditions and the following disclaimer in the
14 # documentation and/or other materials provided with the distribution.
16 # * Neither the name of Red Hat nor the names of its contributors may be
17 # used to endorse or promote products derived from this software without
18 # specific prior written permission.
20 # THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND
21 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22 # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
23 # PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR
24 # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
27 # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
28 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29 # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
30 # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 # Test size of data expression is calculated correctly.
42 # Since this test is expected to fail, valgrind will also fail.
51 nbdkit -U - -fv -D data.AST=1 data "$data" --run 'nbdinfo --size "$uri"'
53 if [ "$size" -ne "$expected_size" ]; then
54 echo "$0: data has unexpected size: $data"
55 echo "$0: expected size: $expected_size"
56 echo "$0: actual size: $size"
61 # Some obvious expressions.
74 # @offsets should extend the size even if nothing appears later.
80 # Nested expressions involving offsets.
81 size
'(@100) (@50)' 150
82 size
'(0 1 2 3 @100) (4 5 6 @50)' 150
83 size
'(@100) @0 (@50)' 100
84 size
'(@50) @0 (@100)' 100
85 size
'(@50) @200 (@100)' 300
87 # Alignment expressions.
91 # Alignment expressions in assignments.
92 #size '@100 -> \a \a' 100 # This probably should work but doesn't
93 size
'(0 @100) -> \a \a' 100
94 size
'(0 @100) -> \a (0 @200) -> \b \a \b' 300
95 size
'(0 @100) -> \a (0 @200) -> \b \a @0 \b' 200
98 size
'<( for i in `seq 0 99`; do printf "%04d" $i; done )' $
(( 100 * 4 ))
99 size
'<( while true; do echo -n .; done )[:400]' 400