Re: [kvm-unit-tests PATCH v8 12/12] arm/arm64: pci: Add pci-testdev PCI device operation test

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Oct 20, 2016 at 03:10:31PM +0200, Alexander Gordeev wrote:
> Suggested-by: Andrew Jones <drjones@xxxxxxxxxx>
> Cc: Thomas Huth <thuth@xxxxxxxxxx>
> Cc: Andrew Jones <drjones@xxxxxxxxxx>
> Cc: Peter Xu <peterx@xxxxxxxxxx>
> Reviewed-by: Andrew Jones <drjones@xxxxxxxxxx>
> Signed-off-by: Alexander Gordeev <agordeev@xxxxxxxxxx>
> ---
>  arm/Makefile.common |  6 +++++-
>  arm/pci-test.c      | 27 +++++++++++++++++++++++++++
>  arm/run             |  7 ++++++-
>  arm/unittests.cfg   |  4 ++++
>  lib/arm/asm/pci.h   |  1 +
>  lib/arm64/asm/pci.h |  1 +
>  6 files changed, 44 insertions(+), 2 deletions(-)
>  create mode 100644 arm/pci-test.c
>  create mode 100644 lib/arm/asm/pci.h
>  create mode 100644 lib/arm64/asm/pci.h
> 
> diff --git a/arm/Makefile.common b/arm/Makefile.common
> index ccb554d9251a..f37b5c2a3de4 100644
> --- a/arm/Makefile.common
> +++ b/arm/Makefile.common
> @@ -11,7 +11,8 @@ endif
>  
>  tests-common = \
>  	$(TEST_DIR)/selftest.flat \
> -	$(TEST_DIR)/spinlock-test.flat
> +	$(TEST_DIR)/spinlock-test.flat \
> +	$(TEST_DIR)/pci-test.flat
>  
>  all: test_cases
>  
> @@ -33,6 +34,9 @@ include scripts/asm-offsets.mak
>  cflatobjs += lib/util.o
>  cflatobjs += lib/alloc.o
>  cflatobjs += lib/devicetree.o
> +cflatobjs += lib/pci.o
> +cflatobjs += lib/pci-host-generic.o
> +cflatobjs += lib/pci-testdev.o
>  cflatobjs += lib/virtio.o
>  cflatobjs += lib/virtio-mmio.o
>  cflatobjs += lib/chr-testdev.o
> diff --git a/arm/pci-test.c b/arm/pci-test.c
> new file mode 100644
> index 000000000000..10a367de5357
> --- /dev/null
> +++ b/arm/pci-test.c
> @@ -0,0 +1,27 @@
> +/*
> + * PCI bus operation test
> + *
> + * Copyright (C) 2016, Red Hat Inc, Alexander Gordeev <agordeev@xxxxxxxxxx>
> + *
> + * This work is licensed under the terms of the GNU LGPL, version 2.
> + */
> +#include <libcflat.h>
> +#include <pci.h>
> +
> +#define NR_TESTS (PCI_TESTDEV_NUM_BARS * PCI_TESTDEV_NUM_TESTS)
> +
> +int main(void)
> +{
> +	int ret;
> +
> +	if (!pci_probe())
> +		report_abort("PCI bus probing failed\n");
> +
> +	pci_print();
> +
> +	ret = pci_testdev();
> +	report("PCI test device passed %d/%d tests",
> +		ret >= NR_TESTS, ret > 0 ? ret : 0, NR_TESTS);
> +
> +	return report_summary();
> +}
> diff --git a/arm/run b/arm/run
> index a2f35ef6a7e6..1ee6231599d6 100755
> --- a/arm/run
> +++ b/arm/run
> @@ -67,8 +67,13 @@ fi
>  chr_testdev='-device virtio-serial-device'
>  chr_testdev+=' -device virtconsole,chardev=ctd -chardev testdev,id=ctd'
>  
> +pci_testdev=
> +if $qemu $M -device '?' 2>&1 | grep pci-testdev > /dev/null; then
> +	pci_testdev="-device pci-testdev"
> +fi
> +
>  M+=",accel=$ACCEL"
> -command="$qemu $M -cpu $processor $chr_testdev"
> +command="$qemu $M -cpu $processor $chr_testdev $pci_testdev"
>  command+=" -display none -serial stdio -kernel"
>  command="$(timeout_cmd) $command"
>  echo $command "$@"
> diff --git a/arm/unittests.cfg b/arm/unittests.cfg
> index 3f6fa45c587e..ae32a42a91c3 100644
> --- a/arm/unittests.cfg
> +++ b/arm/unittests.cfg
> @@ -54,3 +54,7 @@ file = selftest.flat
>  smp = $MAX_SMP
>  extra_params = -append 'smp'
>  groups = selftest
> +
> +[pci-test]
> +file = pci-test.flat
> +groups = pci
> diff --git a/lib/arm/asm/pci.h b/lib/arm/asm/pci.h
> new file mode 100644
> index 000000000000..01ecafe2b6d8
> --- /dev/null
> +++ b/lib/arm/asm/pci.h
> @@ -0,0 +1 @@
> +#include "asm-generic/pci-host-bridge.h"

nit: I would have used <> here, but it doesn't matter.

> diff --git a/lib/arm64/asm/pci.h b/lib/arm64/asm/pci.h
> new file mode 100644
> index 000000000000..f70ef560e2ab
> --- /dev/null
> +++ b/lib/arm64/asm/pci.h
> @@ -0,0 +1 @@
> +#include "../../arm/asm/pci.h"
> -- 
> 1.8.3.1
> 
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux