blob: 03cc39ebf5ee693f41923c433f8228ea979d728e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
#! /bin/sh
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
touch "$DATA_DIR/$CUR_TEST.pnor"
# Don't record the output of ffspart
../ffspart/ffspart -s 0x100 -c 10 -i "$DATA_DIR/$CUR_TEST.ffs" \
-p "$DATA_DIR/$CUR_TEST.pnor" 2>&1 >/dev/null
if [ "$?" -ne 0 ] ; then
fail_test
fi
cp "$DATA_DIR/$CUR_TEST.pnor" "$DATA_DIR/$CUR_TEST.bk"
if [ "$?" -ne 0 ] ; then
fail_test
fi
one_len=$(get_part_len "$DATA_DIR/$CUR_TEST.ffs" "ONE");
one_start=$(get_part_start "$DATA_DIR/$CUR_TEST.ffs" "ONE");
one_end=$(get_part_end "$DATA_DIR/$CUR_TEST.ffs" "ONE");
dd if=/dev/urandom bs="$one_len" count=1 of="$DATA_DIR/random" status=none
#This should error out
run_binary "./pflash" \
"-F $DATA_DIR/$CUR_TEST.pnor -e -a NOT_A_NUMBER -s ALSO_NOT_A_NUMBER"
if [ "$?" -eq 0 ] ; then
fail_test;
fi
one_start_decimal=$(printf "%d" $one_start);
one_len_decimal=$(printf "%d" $one_len);
yes yes | run_binary "./pflash" \
"-F $DATA_DIR/$CUR_TEST.pnor -e -a $one_start_decimal \
-s $one_len_decimal -p $DATA_DIR/random"
if [ "$?" -ne 0 ] ; then
fail_test;
fi
cmp --ignore-initial="$one_start:0" --bytes="$one_len" \
"$DATA_DIR/$CUR_TEST.pnor" "$DATA_DIR/random"
if [ "$?" -ne 0 ] ; then
fail_test;
fi
cmp --bytes="$one_start" "$DATA_DIR/$CUR_TEST.pnor" "$DATA_DIR/$CUR_TEST.bk";
if [ "$?" -ne 0 ] ; then
fail_test;
fi
cmp --ignore-initial="$one_end" \
--bytes="$(expr $(stat --printf="%s" "$DATA_DIR/$CUR_TEST.pnor") - "$one_end")" \
"$DATA_DIR/$CUR_TEST.pnor" "$DATA_DIR/$CUR_TEST.bk"
if [ "$?" -ne 0 ] ; then
fail_test;
fi
sed -i "s|$DATA_DIR/random|FILE|" "$STDOUT_OUT"
# The test infrastructure will clean up but lets no chew unnecessarily
# though disk space
rm "$DATA_DIR/$CUR_TEST.pnor" "$DATA_DIR/$CUR_TEST.bk" "$DATA_DIR/random"
strip_version_from_result "pflash"
diff_with_result
pass_test
|