Skip to content

Commit 3994e83

Browse files
committed
tests: add initial test set
Add tests make target and a simple test that executes qdl in dry-run mode for a synthetic reference FLAT build with VIP table generation. The FLAT build contains: - patch0.xml - patch1.xml - rawprogram0.xml - rawprogram1.xml All binaries that these XML files point to are filled with zeros, generated during github action execution. Tests ensures that the table is generated correctly by comparing calculated and expected SHA256 hashes of DigestToSign.bin file. Signed-off-by: Igor Opaniuk <igor.opaniuk@oss.qualcomm.com>
1 parent ad123a9 commit 3994e83

File tree

9 files changed

+188
-0
lines changed

9 files changed

+188
-0
lines changed

.github/workflows/build.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ jobs:
2727
- name: Build
2828
run: make
2929

30+
- name: Run tests
31+
run: make tests
32+
3033
- name: Package
3134
run: |
3235
mkdir dist
@@ -62,6 +65,9 @@ jobs:
6265
- name: Build
6366
run: make
6467

68+
- name: Run tests
69+
run: make tests
70+
6571
- name: Package
6672
run: |
6773
set -x

Makefile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,13 @@ clean:
4242
rm -f $(KS_OUT) $(KS_OBJS)
4343
rm -f compile_commands.json
4444
rm -f version.h .version.h
45+
rm -f tests/data/*.bin tests/data/*.img tests/data/*.elf
46+
rm -rf tests/data/vip
4547

4648
install: $(QDL) $(RAMDUMP) $(KS_OUT)
4749
install -d $(DESTDIR)$(prefix)/bin
4850
install -m 755 $^ $(DESTDIR)$(prefix)/bin
51+
52+
tests: default
53+
tests:
54+
@./tests/run_tests.sh

tests/data/generate_flat_build.sh

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#!/bin/sh
2+
# SPDX-License-Identifier: BSD-3-Clause
3+
4+
SCRIPT_PATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
5+
6+
create_file_with_size() {
7+
filename="$1"
8+
size_kbytes="$2"
9+
10+
dd if=/dev/zero of="$SCRIPT_PATH/$filename" bs=1024 count="$size_kbytes" status=none
11+
}
12+
13+
create_file_with_size prog_firehose_ddr.elf 20
14+
create_file_with_size efi.bin 524288
15+
create_file_with_size gpt_backup0.bin 20
16+
create_file_with_size gpt_backup1.bin 20
17+
create_file_with_size gpt_main0.bin 24
18+
create_file_with_size gpt_main1.bin 24
19+
create_file_with_size rootfs.img 512000
20+
create_file_with_size xbl_config.elf 320
21+
create_file_with_size xbl.elf 800

tests/data/patch0.xml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?xml version="1.0" ?>
2+
<patches>
3+
<!--NOTE: This is an ** Autogenerated file **-->
4+
<!--NOTE: Patching is in little endian format, i.e. 0xAABBCCDD will look like DD CC BB AA in the file or on disk-->
5+
<!--NOTE: This file is used by Trace32 - So make sure to add decimals, i.e. 0x10-10=0, *but* 0x10-10.=6.-->
6+
<patch start_sector="2" byte_offset="168" physical_partition_number="0" size_in_bytes="8" value="NUM_DISK_SECTORS-6." filename="gpt_main0.bin" SECTOR_SIZE_IN_BYTES="4096" what="Update last partition 2 'rootfs' with actual size in Primary Header."/>
7+
<patch start_sector="2" byte_offset="168" physical_partition_number="0" size_in_bytes="8" value="NUM_DISK_SECTORS-6." filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Update last partition 2 'rootfs' with actual size in Primary Header."/>
8+
<patch start_sector="0" byte_offset="168" physical_partition_number="0" size_in_bytes="8" value="NUM_DISK_SECTORS-6." filename="gpt_backup0.bin" SECTOR_SIZE_IN_BYTES="4096" what="Update last partition 2 'rootfs' with actual size in Backup Header."/>
9+
<patch start_sector="NUM_DISK_SECTORS-5." byte_offset="168" physical_partition_number="0" size_in_bytes="8" value="NUM_DISK_SECTORS-6." filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Update last partition 2 'rootfs' with actual size in Backup Header."/>
10+
<patch start_sector="1" byte_offset="48" physical_partition_number="0" size_in_bytes="8" value="NUM_DISK_SECTORS-6." filename="gpt_main0.bin" SECTOR_SIZE_IN_BYTES="4096" what="Update Primary Header with LastUseableLBA."/>
11+
<patch start_sector="1" byte_offset="48" physical_partition_number="0" size_in_bytes="8" value="NUM_DISK_SECTORS-6." filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Update Primary Header with LastUseableLBA."/>
12+
<patch start_sector="4" byte_offset="48" physical_partition_number="0" size_in_bytes="8" value="NUM_DISK_SECTORS-6." filename="gpt_backup0.bin" SECTOR_SIZE_IN_BYTES="4096" what="Update Backup Header with LastUseableLBA."/>
13+
<patch start_sector="NUM_DISK_SECTORS-1." byte_offset="48" physical_partition_number="0" size_in_bytes="8" value="NUM_DISK_SECTORS-6." filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Update Backup Header with LastUseableLBA."/>
14+
<patch start_sector="1" byte_offset="32" physical_partition_number="0" size_in_bytes="8" value="NUM_DISK_SECTORS-1." filename="gpt_main0.bin" SECTOR_SIZE_IN_BYTES="4096" what="Update Primary Header with BackupGPT Header Location."/>
15+
<patch start_sector="1" byte_offset="32" physical_partition_number="0" size_in_bytes="8" value="NUM_DISK_SECTORS-1." filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Update Primary Header with BackupGPT Header Location."/>
16+
<patch start_sector="4" byte_offset="24" physical_partition_number="0" size_in_bytes="8" value="NUM_DISK_SECTORS-1." filename="gpt_backup0.bin" SECTOR_SIZE_IN_BYTES="4096" what="Update Backup Header with CurrentLBA."/>
17+
<patch start_sector="NUM_DISK_SECTORS-1." byte_offset="24" physical_partition_number="0" size_in_bytes="8" value="NUM_DISK_SECTORS-1." filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Update Backup Header with CurrentLBA."/>
18+
<patch start_sector="4" byte_offset="72" physical_partition_number="0" size_in_bytes="8" value="NUM_DISK_SECTORS-5." filename="gpt_backup0.bin" SECTOR_SIZE_IN_BYTES="4096" what="Update Backup Header with Partition Array Location."/>
19+
<patch start_sector="NUM_DISK_SECTORS-1" byte_offset="72" physical_partition_number="0" size_in_bytes="8" value="NUM_DISK_SECTORS-5." filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Update Backup Header with Partition Array Location."/>
20+
<patch start_sector="1" byte_offset="88" physical_partition_number="0" size_in_bytes="4" value="CRC32(2,4096)" filename="gpt_main0.bin" SECTOR_SIZE_IN_BYTES="4096" what="Update Primary Header with CRC of Partition Array."/>
21+
<patch start_sector="1" byte_offset="88" physical_partition_number="0" size_in_bytes="4" value="CRC32(2,4096)" filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Update Primary Header with CRC of Partition Array."/>
22+
<patch start_sector="4" byte_offset="88" physical_partition_number="0" size_in_bytes="4" value="CRC32(0,4096)" filename="gpt_backup0.bin" SECTOR_SIZE_IN_BYTES="4096" what="Update Backup Header with CRC of Partition Array."/>
23+
<patch start_sector="NUM_DISK_SECTORS-1." byte_offset="88" physical_partition_number="0" size_in_bytes="4" value="CRC32(NUM_DISK_SECTORS-5.,4096)" filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Update Backup Header with CRC of Partition Array."/>
24+
<patch start_sector="1" byte_offset="16" physical_partition_number="0" size_in_bytes="4" value="0" filename="gpt_main0.bin" SECTOR_SIZE_IN_BYTES="4096" what="Zero Out Header CRC in Primary Header."/>
25+
<patch start_sector="1" byte_offset="16" physical_partition_number="0" size_in_bytes="4" value="CRC32(1,92)" filename="gpt_main0.bin" SECTOR_SIZE_IN_BYTES="4096" what="Update Primary Header with CRC of Primary Header."/>
26+
<patch start_sector="1" byte_offset="16" physical_partition_number="0" size_in_bytes="4" value="0" filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Zero Out Header CRC in Primary Header."/>
27+
<patch start_sector="1" byte_offset="16" physical_partition_number="0" size_in_bytes="4" value="CRC32(1,92)" filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Update Primary Header with CRC of Primary Header."/>
28+
<patch start_sector="4" byte_offset="16" physical_partition_number="0" size_in_bytes="4" value="0" filename="gpt_backup0.bin" SECTOR_SIZE_IN_BYTES="4096" what="Zero Out Header CRC in Backup Header."/>
29+
<patch start_sector="4" byte_offset="16" physical_partition_number="0" size_in_bytes="4" value="CRC32(4,92)" filename="gpt_backup0.bin" SECTOR_SIZE_IN_BYTES="4096" what="Update Backup Header with CRC of Backup Header."/>
30+
<patch start_sector="NUM_DISK_SECTORS-1." byte_offset="16" physical_partition_number="0" size_in_bytes="4" value="0" filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Zero Out Header CRC in Backup Header."/>
31+
<patch start_sector="NUM_DISK_SECTORS-1." byte_offset="16" physical_partition_number="0" size_in_bytes="4" value="CRC32(NUM_DISK_SECTORS-1.,92)" filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Update Backup Header with CRC of Backup Header."/>
32+
</patches>

tests/data/patch1.xml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?xml version="1.0" ?>
2+
<patches>
3+
<!--NOTE: This is an ** Autogenerated file **-->
4+
<!--NOTE: Patching is in little endian format, i.e. 0xAABBCCDD will look like DD CC BB AA in the file or on disk-->
5+
<!--NOTE: This file is used by Trace32 - So make sure to add decimals, i.e. 0x10-10=0, *but* 0x10-10.=6.-->
6+
<patch start_sector="2" byte_offset="552" physical_partition_number="1" size_in_bytes="8" value="NUM_DISK_SECTORS-6." filename="gpt_main1.bin" SECTOR_SIZE_IN_BYTES="4096" what="Update last partition 5 'last_parti' with actual size in Primary Header."/>
7+
<patch start_sector="2" byte_offset="552" physical_partition_number="1" size_in_bytes="8" value="NUM_DISK_SECTORS-6." filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Update last partition 5 'last_parti' with actual size in Primary Header."/>
8+
<patch start_sector="0" byte_offset="552" physical_partition_number="1" size_in_bytes="8" value="NUM_DISK_SECTORS-6." filename="gpt_backup1.bin" SECTOR_SIZE_IN_BYTES="4096" what="Update last partition 5 'last_parti' with actual size in Backup Header."/>
9+
<patch start_sector="NUM_DISK_SECTORS-5." byte_offset="552" physical_partition_number="1" size_in_bytes="8" value="NUM_DISK_SECTORS-6." filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Update last partition 5 'last_parti' with actual size in Backup Header."/>
10+
<patch start_sector="1" byte_offset="48" physical_partition_number="1" size_in_bytes="8" value="NUM_DISK_SECTORS-6." filename="gpt_main1.bin" SECTOR_SIZE_IN_BYTES="4096" what="Update Primary Header with LastUseableLBA."/>
11+
<patch start_sector="1" byte_offset="48" physical_partition_number="1" size_in_bytes="8" value="NUM_DISK_SECTORS-6." filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Update Primary Header with LastUseableLBA."/>
12+
<patch start_sector="4" byte_offset="48" physical_partition_number="1" size_in_bytes="8" value="NUM_DISK_SECTORS-6." filename="gpt_backup1.bin" SECTOR_SIZE_IN_BYTES="4096" what="Update Backup Header with LastUseableLBA."/>
13+
<patch start_sector="NUM_DISK_SECTORS-1." byte_offset="48" physical_partition_number="1" size_in_bytes="8" value="NUM_DISK_SECTORS-6." filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Update Backup Header with LastUseableLBA."/>
14+
<patch start_sector="1" byte_offset="32" physical_partition_number="1" size_in_bytes="8" value="NUM_DISK_SECTORS-1." filename="gpt_main1.bin" SECTOR_SIZE_IN_BYTES="4096" what="Update Primary Header with BackupGPT Header Location."/>
15+
<patch start_sector="1" byte_offset="32" physical_partition_number="1" size_in_bytes="8" value="NUM_DISK_SECTORS-1." filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Update Primary Header with BackupGPT Header Location."/>
16+
<patch start_sector="4" byte_offset="24" physical_partition_number="1" size_in_bytes="8" value="NUM_DISK_SECTORS-1." filename="gpt_backup1.bin" SECTOR_SIZE_IN_BYTES="4096" what="Update Backup Header with CurrentLBA."/>
17+
<patch start_sector="NUM_DISK_SECTORS-1." byte_offset="24" physical_partition_number="1" size_in_bytes="8" value="NUM_DISK_SECTORS-1." filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Update Backup Header with CurrentLBA."/>
18+
<patch start_sector="4" byte_offset="72" physical_partition_number="1" size_in_bytes="8" value="NUM_DISK_SECTORS-5." filename="gpt_backup1.bin" SECTOR_SIZE_IN_BYTES="4096" what="Update Backup Header with Partition Array Location."/>
19+
<patch start_sector="NUM_DISK_SECTORS-1" byte_offset="72" physical_partition_number="1" size_in_bytes="8" value="NUM_DISK_SECTORS-5." filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Update Backup Header with Partition Array Location."/>
20+
<patch start_sector="1" byte_offset="88" physical_partition_number="1" size_in_bytes="4" value="CRC32(2,4096)" filename="gpt_main1.bin" SECTOR_SIZE_IN_BYTES="4096" what="Update Primary Header with CRC of Partition Array."/>
21+
<patch start_sector="1" byte_offset="88" physical_partition_number="1" size_in_bytes="4" value="CRC32(2,4096)" filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Update Primary Header with CRC of Partition Array."/>
22+
<patch start_sector="4" byte_offset="88" physical_partition_number="1" size_in_bytes="4" value="CRC32(0,4096)" filename="gpt_backup1.bin" SECTOR_SIZE_IN_BYTES="4096" what="Update Backup Header with CRC of Partition Array."/>
23+
<patch start_sector="NUM_DISK_SECTORS-1." byte_offset="88" physical_partition_number="1" size_in_bytes="4" value="CRC32(NUM_DISK_SECTORS-5.,4096)" filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Update Backup Header with CRC of Partition Array."/>
24+
<patch start_sector="1" byte_offset="16" physical_partition_number="1" size_in_bytes="4" value="0" filename="gpt_main1.bin" SECTOR_SIZE_IN_BYTES="4096" what="Zero Out Header CRC in Primary Header."/>
25+
<patch start_sector="1" byte_offset="16" physical_partition_number="1" size_in_bytes="4" value="CRC32(1,92)" filename="gpt_main1.bin" SECTOR_SIZE_IN_BYTES="4096" what="Update Primary Header with CRC of Primary Header."/>
26+
<patch start_sector="1" byte_offset="16" physical_partition_number="1" size_in_bytes="4" value="0" filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Zero Out Header CRC in Primary Header."/>
27+
<patch start_sector="1" byte_offset="16" physical_partition_number="1" size_in_bytes="4" value="CRC32(1,92)" filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Update Primary Header with CRC of Primary Header."/>
28+
<patch start_sector="4" byte_offset="16" physical_partition_number="1" size_in_bytes="4" value="0" filename="gpt_backup1.bin" SECTOR_SIZE_IN_BYTES="4096" what="Zero Out Header CRC in Backup Header."/>
29+
<patch start_sector="4" byte_offset="16" physical_partition_number="1" size_in_bytes="4" value="CRC32(4,92)" filename="gpt_backup1.bin" SECTOR_SIZE_IN_BYTES="4096" what="Update Backup Header with CRC of Backup Header."/>
30+
<patch start_sector="NUM_DISK_SECTORS-1." byte_offset="16" physical_partition_number="1" size_in_bytes="4" value="0" filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Zero Out Header CRC in Backup Header."/>
31+
<patch start_sector="NUM_DISK_SECTORS-1." byte_offset="16" physical_partition_number="1" size_in_bytes="4" value="CRC32(NUM_DISK_SECTORS-1.,92)" filename="DISK" SECTOR_SIZE_IN_BYTES="4096" what="Update Backup Header with CRC of Backup Header."/>
32+
</patches>

tests/data/rawprogram0.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" ?>
2+
<data>
3+
<!--NOTE: This is an ** Autogenerated file **-->
4+
<!--NOTE: Sector size is 4096bytes-->
5+
<program start_sector="6" size_in_KB="524288.0" physical_partition_number="0" partofsingleimage="false" file_sector_offset="0" num_partition_sectors="131072" readbackverify="false" filename="efi.bin" sparse="false" start_byte_hex="0x6000" SECTOR_SIZE_IN_BYTES="4096" label="efi"/>
6+
<program start_sector="131078" size_in_KB="0" physical_partition_number="0" partofsingleimage="false" file_sector_offset="0" num_partition_sectors="0" readbackverify="false" filename="rootfs.img" sparse="false" start_byte_hex="0x20006000" SECTOR_SIZE_IN_BYTES="4096" label="rootfs"/>
7+
<program start_sector="0" size_in_KB="24.0" physical_partition_number="0" partofsingleimage="true" file_sector_offset="0" num_partition_sectors="6" readbackverify="false" filename="gpt_main0.bin" sparse="false" start_byte_hex="0x0" SECTOR_SIZE_IN_BYTES="4096" label="PrimaryGPT"/>
8+
<program start_sector="NUM_DISK_SECTORS-5." size_in_KB="20.0" physical_partition_number="0" partofsingleimage="true" file_sector_offset="0" num_partition_sectors="5" readbackverify="false" filename="gpt_backup0.bin" sparse="false" start_byte_hex="(4096*NUM_DISK_SECTORS)-20480." SECTOR_SIZE_IN_BYTES="4096" label="BackupGPT"/>
9+
</data>

tests/data/rawprogram1.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" ?>
2+
<data>
3+
<!--NOTE: This is an ** Autogenerated file **-->
4+
<!--NOTE: Sector size is 4096bytes-->
5+
<program start_sector="6" size_in_KB="3604.0" physical_partition_number="1" partofsingleimage="false" file_sector_offset="0" num_partition_sectors="901" readbackverify="false" filename="xbl.elf" sparse="false" start_byte_hex="0x6000" SECTOR_SIZE_IN_BYTES="4096" label="xbl_a"/>
6+
<program start_sector="907" size_in_KB="512.0" physical_partition_number="1" partofsingleimage="false" file_sector_offset="0" num_partition_sectors="128" readbackverify="false" filename="xbl_config.elf" sparse="false" start_byte_hex="0x38b000" SECTOR_SIZE_IN_BYTES="4096" label="xbl_config_a"/>
7+
<program start_sector="1035" size_in_KB="3604.0" physical_partition_number="1" partofsingleimage="false" file_sector_offset="0" num_partition_sectors="901" readbackverify="false" filename="" sparse="false" start_byte_hex="0x40b000" SECTOR_SIZE_IN_BYTES="4096" label="xbl_b"/>
8+
<program start_sector="1936" size_in_KB="512.0" physical_partition_number="1" partofsingleimage="false" file_sector_offset="0" num_partition_sectors="128" readbackverify="false" filename="" sparse="false" start_byte_hex="0x790000" SECTOR_SIZE_IN_BYTES="4096" label="xbl_config_b"/>
9+
<program start_sector="2064" size_in_KB="0" physical_partition_number="1" partofsingleimage="false" file_sector_offset="0" num_partition_sectors="0" readbackverify="false" filename="" sparse="false" start_byte_hex="0x810000" SECTOR_SIZE_IN_BYTES="4096" label="last_parti"/>
10+
<program start_sector="0" size_in_KB="24.0" physical_partition_number="1" partofsingleimage="true" file_sector_offset="0" num_partition_sectors="6" readbackverify="false" filename="gpt_main1.bin" sparse="false" start_byte_hex="0x0" SECTOR_SIZE_IN_BYTES="4096" label="PrimaryGPT"/>
11+
<program start_sector="NUM_DISK_SECTORS-5." size_in_KB="20.0" physical_partition_number="1" partofsingleimage="true" file_sector_offset="0" num_partition_sectors="5" readbackverify="false" filename="gpt_backup1.bin" sparse="false" start_byte_hex="(4096*NUM_DISK_SECTORS)-20480." SECTOR_SIZE_IN_BYTES="4096" label="BackupGPT"/>
12+
</data>

tests/run_tests.sh

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#!/bin/bash
2+
# SPDX-License-Identifier: BSD-3-Clause
3+
4+
set -e
5+
6+
SCRIPT_PATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
7+
FLAT_BUILD_PATH=$SCRIPT_PATH/data
8+
9+
echo "####### Generate a FLAT build"
10+
$FLAT_BUILD_PATH/generate_flat_build.sh
11+
12+
echo "####### Run QDL tests"
13+
cd $SCRIPT_PATH
14+
for t in test_*.sh; do
15+
echo "###### Run $t"
16+
bash $t
17+
if [ $? -eq 0 ]; then
18+
echo "####### Test $t: OK"
19+
else
20+
echo "####### Test $t: FAIL"
21+
failed=1
22+
fi
23+
done
24+
25+
if [ "$failed" == "1" ]; then
26+
echo "####### Some test failed"
27+
exit 1
28+
fi
29+
30+
echo "####### All tests passed"

tests/test_vip_generation.sh

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#!/bin/bash
2+
# SPDX-License-Identifier: BSD-3-Clause
3+
4+
set -e
5+
6+
SCRIPT_PATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
7+
8+
FLAT_BUILD=$SCRIPT_PATH/data
9+
10+
REP_ROOT=$SCRIPT_PATH/..
11+
VIP_PATH=${FLAT_BUILD}/vip
12+
EXPECTED_DIGEST="4e13981189ede380172369aa0a4847ca3c9a4e2795733bca90ec1b1e713972ea"
13+
VIP_TABLE_FILE=${VIP_PATH}/DigestsToSign.bin
14+
15+
mkdir -p $VIP_PATH
16+
17+
cd $FLAT_BUILD
18+
${REP_ROOT}/qdl --dry-run --create-digests=${VIP_PATH} \
19+
prog_firehose_ddr.elf rawprogram*.xml patch*.xml
20+
21+
if command -v sha256sum >/dev/null 2>&1; then
22+
shacmd="sha256sum"
23+
elif command -v shasum >/dev/null 2>&1; then
24+
shacmd="shasum -a 256"
25+
else
26+
echo "No SHA-256 checksum tool found (need 'sha256sum' or 'shasum')"
27+
exit 1
28+
fi
29+
30+
actual_digest=`${shacmd} "${VIP_TABLE_FILE}" | cut -d ' ' -f1`
31+
if [ "$actual_digest" = "${EXPECTED_DIGEST}" ]; then
32+
echo "VIP tables are generated successfully and validated"
33+
exit 0
34+
else
35+
echo "Expected SHA256 digest of ${VIP_TABLE_FILE} file is ${EXPECTED_DIGEST}"
36+
echo "Calculated SHA256 digest of ${VIP_TABLE_FILE} file is $actual_digest"
37+
echo "VIP table folder contents:"
38+
ls -la ${VIP_PATH}
39+
exit 1
40+
fi

0 commit comments

Comments
 (0)