| Index: tests/run_cgpt_tests.sh
|
| diff --git a/tests/run_cgpt_tests.sh b/tests/run_cgpt_tests.sh
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..2dcca9970c2696e67fe2f4ec495a39ca1288ad48
|
| --- /dev/null
|
| +++ b/tests/run_cgpt_tests.sh
|
| @@ -0,0 +1,114 @@
|
| +#!/bin/bash -eu
|
| +
|
| +# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +#
|
| +# Run tests for RSA Signature verification.
|
| +
|
| +# Load common constants and variables.
|
| +. "$(dirname "$0")/common.sh"
|
| +
|
| +GPT=${1:-../cgpt/cgpt}
|
| +[ -x "$GPT" ] || error "Can't execute $GPT"
|
| +warning "testing $GPT"
|
| +
|
| +echo "Create an empty file to use as the device..."
|
| +NUM_SECTORS=1000
|
| +DEV=$(mktemp)
|
| +BOOTFILE=$(mktemp)
|
| +dd if=/dev/zero of=${DEV} conv=notrunc bs=512 count=${NUM_SECTORS} 2>/dev/null
|
| +trap "rm -f ${DEV}" EXIT
|
| +
|
| +
|
| +echo "Create a bunch of partitions, using the real GUID types..."
|
| +DATA_START=100
|
| +DATA_SIZE=20
|
| +DATA_LABEL="data stuff"
|
| +DATA_GUID='ebd0a0a2-b9e5-4433-87c0-68b6b72699c7'
|
| +DATA_NUM=1
|
| +
|
| +KERN_START=200
|
| +KERN_SIZE=30
|
| +KERN_LABEL="kernel stuff"
|
| +KERN_GUID='fe3a2a5d-4f32-41a7-b725-accc3285a309'
|
| +KERN_NUM=2
|
| +
|
| +ROOTFS_START=300
|
| +ROOTFS_SIZE=40
|
| +ROOTFS_LABEL="rootfs stuff"
|
| +ROOTFS_GUID='3cb8e202-3b7e-47dd-8a3c-7ff2a13cfcec'
|
| +ROOTFS_NUM=3
|
| +
|
| +ESP_START=400
|
| +ESP_SIZE=50
|
| +ESP_LABEL="ESP stuff"
|
| +ESP_GUID='c12a7328-f81f-11d2-ba4b-00a0c93ec93b'
|
| +ESP_NUM=4
|
| +
|
| +FUTURE_START=500
|
| +FUTURE_SIZE=60
|
| +FUTURE_LABEL="future stuff"
|
| +FUTURE_GUID='2e0a753d-9e48-43b0-8337-b15192cb1b5e'
|
| +FUTURE_NUM=5
|
| +
|
| +RANDOM_START=600
|
| +RANDOM_SIZE=70
|
| +RANDOM_LABEL="random stuff"
|
| +RANDOM_GUID='2364a860-bf63-42fb-a83d-9ad3e057fcf5'
|
| +RANDOM_NUM=6
|
| +
|
| +$GPT create ${DEV}
|
| +
|
| +$GPT add -b ${DATA_START} -s ${DATA_SIZE} -t ${DATA_GUID} \
|
| + -l "${DATA_LABEL}" ${DEV}
|
| +$GPT add -b ${KERN_START} -s ${KERN_SIZE} -t ${KERN_GUID} \
|
| + -l "${KERN_LABEL}" ${DEV}
|
| +$GPT add -b ${ROOTFS_START} -s ${ROOTFS_SIZE} -t ${ROOTFS_GUID} \
|
| + -l "${ROOTFS_LABEL}" ${DEV}
|
| +$GPT add -b ${ESP_START} -s ${ESP_SIZE} -t ${ESP_GUID} \
|
| + -l "${ESP_LABEL}" ${DEV}
|
| +$GPT add -b ${FUTURE_START} -s ${FUTURE_SIZE} -t ${FUTURE_GUID} \
|
| + -l "${FUTURE_LABEL}" ${DEV}
|
| +$GPT add -b ${RANDOM_START} -s ${RANDOM_SIZE} -t ${RANDOM_GUID} \
|
| + -l "${RANDOM_LABEL}" ${DEV}
|
| +
|
| +
|
| +echo "Extract the start and size of given partitions..."
|
| +
|
| +X=$($GPT show -b -i $DATA_NUM ${DEV})
|
| +Y=$($GPT show -s -i $DATA_NUM ${DEV})
|
| +[ "$X $Y" = "$DATA_START $DATA_SIZE" ] || error "fail at line $LINENO"
|
| +
|
| +X=$($GPT show -b -i $KERN_NUM ${DEV})
|
| +Y=$($GPT show -s -i $KERN_NUM ${DEV})
|
| +[ "$X $Y" = "$KERN_START $KERN_SIZE" ] || error "fail at line $LINENO"
|
| +
|
| +X=$($GPT show -b -i $ROOTFS_NUM ${DEV})
|
| +Y=$($GPT show -s -i $ROOTFS_NUM ${DEV})
|
| +[ "$X $Y" = "$ROOTFS_START $ROOTFS_SIZE" ] || error "fail at line $LINENO"
|
| +
|
| +X=$($GPT show -b -i $ESP_NUM ${DEV})
|
| +Y=$($GPT show -s -i $ESP_NUM ${DEV})
|
| +[ "$X $Y" = "$ESP_START $ESP_SIZE" ] || error "fail at line $LINENO"
|
| +
|
| +X=$($GPT show -b -i $FUTURE_NUM ${DEV})
|
| +Y=$($GPT show -s -i $FUTURE_NUM ${DEV})
|
| +[ "$X $Y" = "$FUTURE_START $FUTURE_SIZE" ] || error "fail at line $LINENO"
|
| +
|
| +X=$($GPT show -b -i $RANDOM_NUM ${DEV})
|
| +Y=$($GPT show -s -i $RANDOM_NUM ${DEV})
|
| +[ "$X $Y" = "$RANDOM_START $RANDOM_SIZE" ] || error "fail at line $LINENO"
|
| +
|
| +
|
| +echo "Set the boot partition.."
|
| +$GPT boot -i ${KERN_NUM} ${DEV} >/dev/null
|
| +
|
| +echo "Check the PMBR's idea of the boot partition..."
|
| +X=$($GPT boot ${DEV})
|
| +Y=$($GPT show -u -i $KERN_NUM $DEV)
|
| +[ "$X" = "$Y" ] || error "fail at line $LINENO"
|
| +
|
| +echo "Done."
|
| +
|
| +happy "All tests passed."
|
|
|