diff options
author | Bill Richardson <wfrichar@chromium.org> | 2010-06-11 09:15:55 -0700 |
---|---|---|
committer | Bill Richardson <wfrichar@chromium.org> | 2010-06-11 09:15:55 -0700 |
commit | f1372d9109d638fbb1a177a89ebaf64e7ee0637e (patch) | |
tree | 243cdacbc1028e6a987d582d33927560af0b47e0 /tests/run_cgpt_tests.sh | |
parent | 6a97b3e2a1bee35bf3c00f2fb0faafde4aaab9e2 (diff) | |
download | vboot-f1372d9109d638fbb1a177a89ebaf64e7ee0637e.tar.gz |
Nearly complete rewrite of cgpt tool.
This fixes a number of bugs, adds a bunch of commands, and essentially makes
cgpt ready to use as a replacement for gpt. Still to do is to add commands
and options that will let it generated intentionally bad partitions, for use
in testing.
Review URL: http://codereview.chromium.org/2719008
Diffstat (limited to 'tests/run_cgpt_tests.sh')
-rwxr-xr-x | tests/run_cgpt_tests.sh | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/tests/run_cgpt_tests.sh b/tests/run_cgpt_tests.sh new file mode 100755 index 00000000..2dcca997 --- /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." |