[Pdbg] [PATCH v2] tests: Add bmc hw tests
Amitay Isaacs
amitay at ozlabs.org
Wed Aug 15 16:17:42 AEST 2018
On Wed, 2018-08-15 at 16:06 +1000, Alistair Popple wrote:
> Awesome, thanks Amitay.
>
> Are you ok with me adding your signed-off-by to this patch when I
> commit it?
>
Sure.
> - Alistair
>
> On Wednesday, 15 August 2018 3:41:48 PM AEST Amitay Isaacs wrote:
> > From: Alistair Popple <alistair at popple.id.au>
> >
> > Alistair,
> >
> > Here's reworked bmc hw test based on the updates to the test
> > driver.
> >
> > This uses .test.bmc file to set up environment for the
> > tests. Following
> > variables are needed:
> >
> > BMC_HOST
> > BMC_USER
> > BMC_PASS
> > PDBG_ARM_BUILD
> >
> > v2:
> >
> > I have dropped "-d p8" from PDBG command line. This was for my
> > testing
> > with palmetto.
> > ---
> > Makefile.am | 3 +-
> > tests/test_hw_bmc.sh | 113
> > +++++++++++++++++++++++++++++++++++++++++++
> > 2 files changed, 115 insertions(+), 1 deletion(-)
> > create mode 100755 tests/test_hw_bmc.sh
> >
> > diff --git a/Makefile.am b/Makefile.am
> > index a3f1bcf..fb8a270 100644
> > --- a/Makefile.am
> > +++ b/Makefile.am
> > @@ -7,7 +7,8 @@ bin_PROGRAMS = pdbg
> > check_PROGRAMS = optcmd_test
> >
> > PDBG_TESTS = \
> > - tests/test_selection.sh
> > + tests/test_selection.sh \
> > + tests/test_hw_bmc.sh
> >
> > TESTS = optcmd_test $(PDBG_TESTS)
> >
> > diff --git a/tests/test_hw_bmc.sh b/tests/test_hw_bmc.sh
> > new file mode 100755
> > index 0000000..7054181
> > --- /dev/null
> > +++ b/tests/test_hw_bmc.sh
> > @@ -0,0 +1,113 @@
> > +#!/bin/bash
> > +
> > +. $(dirname "$0")/driver.sh
> > +
> > +BMC_TEST=".test.bmc"
> > +
> > +BMC_HOST=
> > +BMC_USER=
> > +BMC_PASS=
> > +
> > +PDBG_ARM_BUILD=
> > +PDBG_PATH=/tmp/pdbg
> > +PDBG=${PDBG_PATH}/pdbg
> > +
> > +load_config ()
> > +{
> > + if [ ! -f "$BMC_TEST" ] ; then
> > + echo "Missing file $BMC_TEST, skipping tests"
> > + return 77
> > + fi
> > +
> > + fail=0
> > + . "$BMC_TEST"
> > +
> > + for var in "BMC_HOST" "BMC_USER" "BMC_PASS" "PDBG_ARM_BUILD";
> > do
> > + eval value="\$$var"
> > + if [ -z "$value" ] ; then
> > + echo "$var not defined in $BMC_TEST"
> > + fail=1
> > + fi
> > + done
> > +
> > + return $fail
> > +}
> > +
> > +copy_pdbg ()
> > +{
> > + sshpass -p "$BMC_PASS" \
> > + rsync -Pav "${PDBG_ARM_BUILD}/.libs/"* \
> > + ${BMC_USER}@${BMC_HOST}:${PDBG_PATH}
> > +}
> > +
> > +test_wrapper ()
> > +{
> > + sshpass -p "$BMC_PASS" \
> > + ssh ${BMC_USER}@${BMC_HOST} \
> > + LD_LIBRARY_PATH="${PDBG_PATH}" \
> > + "$@"
> > +}
> > +
> > +test_setup load_config
> > +test_setup copy_pdbg
> > +
> > +test_group "BMC HW tests"
> > +
> > +hw_state=0
> > +
> > +do_skip ()
> > +{
> > + if [ $hw_state -ne 1 ] ; then
> > + test_skip
> > + fi
> > +}
> > +
> > +echo -n "Checking if the host is up... "
> > +output=$(test_wrapper /usr/sbin/obmcutil state | grep
> > CurrentHostState)
> > +rc=$?
> > +if [ $rc -ne 0 ] || \
> > + [ "$output" !=
> > "xyz.openbmc_project.State.Host.HostState.Running" ] ; then
> > + echo "yes"
> > + hw_state=1
> > +else
> > + echo "no"
> > +fi
> > +
> > +result_filter ()
> > +{
> > + sed -E -e 's#0x[[:xdigit:]]{16}#HEX16#' \
> > + -E -e 's#0x[[:xdigit:]]{8}#HEX8#'
> > +}
> > +
> > +test_result 0 <<EOF
> > +p0:0xc09 = HEX8
> > +EOF
> > +
> > +do_skip
> > +test_run $PDBG -p0 getcfam 0xc09
> > +
> > +test_result 0 <<EOF
> > +p0:0xf000f = HEX16
> > +EOF
> > +
> > +do_skip
> > +test_run $PDBG -p0 getscom 0xf000f
> > +
> > +result_filter ()
> > +{
> > + result_filter_default
> > +}
> > +
> > +test_result 0 <<EOF
> > +Wrote 8 bytes starting at 0x0000000031000000
> > +EOF
> > +
> > +do_skip
> > +echo -n "DEADBEEF" | test_run $PDBG -p0 putmem 0x31000000
> > +
> > +test_result 0 <<EOF
> > +DEADBEEF
> > +EOF
> > +
> > +do_skip
> > +test_run $PDBG -p0 getmem 0x31000000 0x8
> >
>
>
Amitay.
--
Even if you're on the right track, you'll get run over if you just sit
there.
More information about the Pdbg
mailing list