xref: /aosp_15_r20/external/vboot_reference/tests/futility/test_dump_fmap.sh (revision 8617a60d3594060b7ecbd21bc622a7c14f3cf2bc)
1#!/bin/bash -eux
2# Copyright 2013 The ChromiumOS Authors
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
6me=${0##*/}
7TMP="${me}.tmp"
8
9# Work in scratch directory
10cd "${OUTDIR}"
11
12# Good FMAP
13"${FUTILITY}" dump_fmap -F "${SCRIPT_DIR}/futility/data_fmap.bin"  > "${TMP}"
14cmp "${SCRIPT_DIR}/futility/data_fmap_expect_f.txt" "${TMP}"
15
16"${FUTILITY}" dump_fmap -p "${SCRIPT_DIR}/futility/data_fmap.bin"  > "${TMP}"
17cmp "${SCRIPT_DIR}/futility/data_fmap_expect_p.txt" "${TMP}"
18
19"${FUTILITY}" dump_fmap -h "${SCRIPT_DIR}/futility/data_fmap.bin"  > "${TMP}"
20cmp "${SCRIPT_DIR}/futility/data_fmap_expect_h.txt" "${TMP}"
21
22"${FUTILITY}" dump_fmap -e "${SCRIPT_DIR}/futility/data_fmap3.bin"  > "${TMP}"
23cmp "${SCRIPT_DIR}/futility/data_fmap_expect_e.txt" "${TMP}"
24
25
26# This should fail because the input file is truncated and doesn't really
27# contain the stuff that the FMAP claims it does.
28if "${FUTILITY}" dump_fmap -x "${SCRIPT_DIR}/futility/data_fmap.bin" FMAP; \
29  then false; fi
30
31# This should fail because of invalid section name.
32if "${FUTILITY}" dump_fmap -x "${SCRIPT_DIR}/futility/data_fmap.bin" NO_SUCH; \
33  then false; fi
34
35# However, this should work.
36"${FUTILITY}" dump_fmap -x "${SCRIPT_DIR}/futility/data_fmap.bin" SI_DESC > \
37  "${TMP}"
38cmp "${SCRIPT_DIR}/futility/data_fmap_expect_x.txt" "${TMP}"
39
40# Redirect dumping to a different place
41"${FUTILITY}" dump_fmap -x "${SCRIPT_DIR}/futility/data_fmap.bin" SI_DESC:FOO \
42  > "${TMP}"
43cmp "${SCRIPT_DIR}/futility/data_fmap_expect_x2.txt" "${TMP}"
44cmp SI_DESC FOO
45
46# This FMAP has problems, and should fail.
47if "${FUTILITY}" dump_fmap -h "${SCRIPT_DIR}/futility/data_fmap2.bin" > \
48  "${TMP}"; then false; fi
49cmp "${SCRIPT_DIR}/futility/data_fmap2_expect_h.txt" "${TMP}"
50
51"${FUTILITY}" dump_fmap -hh "${SCRIPT_DIR}/futility/data_fmap2.bin" > "${TMP}"
52cmp "${SCRIPT_DIR}/futility/data_fmap2_expect_hh.txt" "${TMP}"
53
54"${FUTILITY}" dump_fmap -hhH "${SCRIPT_DIR}/futility/data_fmap2.bin" > "${TMP}"
55cmp "${SCRIPT_DIR}/futility/data_fmap2_expect_hhH.txt" "${TMP}"
56
57
58# cleanup
59rm -f "${TMP}"* FMAP SI_DESC FOO
60exit 0
61