[Libva] [PATCH RFC intel-driver 00/11] Automated (Unit) Test Suite
Eoff, Ullysses A
ullysses.a.eoff at intel.com
Wed Sep 7 19:19:55 UTC 2016
I was able to duplicate and debug on Ubuntu 14.04... patch sent to list.
----
U. Artie
> -----Original Message-----
> From: Sean V Kelley [mailto:seanvk at posteo.de]
> Sent: Wednesday, September 07, 2016 12:16 PM
> To: Xiang, Haihao <haihao.xiang at intel.com>; Eoff, Ullysses A <ullysses.a.eoff at intel.com>
> Cc: libva at lists.freedesktop.org
> Subject: Re: [Libva] [PATCH RFC intel-driver 00/11] Automated (Unit) Test Suite
>
>
> > On Sep 7, 2016, at 10:35 AM, Sean V Kelley <seanvk at posteo.de> wrote:
> >
> > On Wed, 2016-09-07 at 10:13 -0700, Sean V Kelley wrote:
> >> On Wed, 2016-09-07 at 02:42 +0000, Xiang, Haihao wrote:
> >>>
> >>> Hi Artie,
> >>>
> >>> First I applied your patches to the latest master branch, then
> >>> build
> >>> the library and run test with the following steps:
> >>>
> >>> 1. ./autogen.sh --enable-tests --prefix=/usr --
> >>> libdir=/usr/lib/x86_64-
> >>> linux-gnu/
> >>>
> >>> 2. make ; sudo make install
> >>>
> >>> 3. cd test
> >>>
> >>> 4. ./test_i965_drv_video
> >>>
> >>> 5. make check-local
> >>>
> >>> step 4 is OK, but there is segmentation fault in step 5.
> >>>
> >>> hw:
> >>> Haswell
> >>>
> >>> sw:
> >>> I am using Ubuntu 14.04.3 LTS but installed some packages from
> >>> source
> >>> code:
> >>> libdrm 2.4.68
> >>> linux kernel 4.5.0
> >>> libva: master
> >>> libva-intel-driver: master+your patches
> >>
> >>
> >> Works for me.
> >>
> >> ArchLinux
> >> libdrm 2.4.70-1
> >> linux kernel 4.7.2-1
> >> Libva: matster
> >> Libva-intel-driver: master + gtest patch series
> >>
> >> Thanks,
> >>
> >> Sean
> >
> >
> > Haihao,
> >
> > This sounds distro specific to me...No issue seen with Fedora or Arch.
> > Also, test with Ubuntu 16.04 LTS if you are using Ubuntu.
> >
> > Sean
>
>
> Works fine for me with Ubuntu 16.04.1 LTS
>
> hw: Haswell
>
> Ubuntu 16.04.1
>
> Sean
>
>
>
> >
> >
> >>
> >>>
> >>>
> >>> Thanks
> >>> Haihao
> >>>
> >>>
> >>>
> >>>
> >>>>
> >>>>
> >>>> Hi Haihao,
> >>>>
> >>>> I am unable to duplicate your segmentation fault. Could you
> >>>> provide
> >>>> more output and details on your setup?
> >>>>
> >>>> Thanks,
> >>>>
> >>>> ----
> >>>> U. Artie
> >>>>
> >>>>>
> >>>>>
> >>>>> -----Original Message-----
> >>>>> From: Xiang, Haihao
> >>>>> Sent: Friday, September 02, 2016 1:40 AM
> >>>>> To: Eoff, Ullysses A <ullysses.a.eoff at intel.com>; libva at lists.f
> >>>>> re
> >>>>> ed
> >>>>> esktop.org
> >>>>> Subject: Re: [Libva] [PATCH RFC intel-driver 00/11] Automated
> >>>>> (Unit) Test Suite
> >>>>>
> >>>>>
> >>>>> Thanks for the patches to integrate gtest framework into libva-
> >>>>> intel-
> >>>>> driver. test_i965_drv_video works well for me, but I got
> >>>>> segmentation
> >>>>> fault when I ran 'make check-local', could you have a look at
> >>>>> this
> >>>>> issue?
> >>>>>
> >>>>> libva info: Found init function __vaDriverInit_0_39
> >>>>> libva info: va_openDriver() returns 0
> >>>>> make: *** [check-local] Segmentation fault
> >>>>>
> >>>>> Thanks
> >>>>> Haihao
> >>>>>
> >>>>>>
> >>>>>>
> >>>>>> The following patchset integrates the Google Test Framework
> >>>>>> into the source tree. This test framework provides a rich
> >>>>>> set of features like automatic test discovery, assertion
> >>>>>> macros,
> >>>>>> test fixtures, structured console and/or xml test results,
> >>>>>> and
> >>>>>> more.
> >>>>>> These kinds of features allow developers to spend more time
> >>>>>> focusing on writing the tests rather than the test framework
> >>>>>> itself. You can learn more about GTest here:
> >>>>>>
> >>>>>> <https://github.com/google/googletest/tree/release-1.8.0/go
> >>>>>> og
> >>>>>> le
> >>>>>> test
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>> The intention is to give developers a simple way to write and
> >>>>>> execute [unit] tests for the vaapi-intel-driver. With an
> >>>>>> "integrated"
> >>>>>> automated test suite/framework, developers are enabled to
> >>>>>> develop
> >>>>>> tests that can exercise internal driver functions, features
> >>>>>> and
> >>>>>> concepts. It also helps developers to identify regressions
> >>>>>> before
> >>>>>> submitting new patches. All of which, hopefully, leads to an
> >>>>>> overall
> >>>>>> higher quality driver.
> >>>>>>
> >>>>>> As part of this patch series, I have provided a driver test
> >>>>>> fixture
> >>>>>> that can be used as a foundation for most test cases. I've
> >>>>>> also
> >>>>>> developed several test cases that can be used as a reference
> >>>>>> for
> >>>>>> other
> >>>>>> developers to get started on developing their own test cases.
> >>>>>>
> >>>>>> This patch series is not meant to address *every* need that
> >>>>>> we
> >>>>>> might
> >>>>>> have to test the driver. Rather, it serves as a point to get
> >>>>>> us
> >>>>>> started. As new tests are developed, I would expect that
> >>>>>> this
> >>>>>> test
> >>>>>> suite will evolve to accommodate additional needs.
> >>>>>>
> >>>>>> One foreseeable addition is that, sooner than later, new
> >>>>>> tests
> >>>>>> will
> >>>>>> need
> >>>>>> to determine if the hardware supports a tested driver feature
> >>>>>> or
> >>>>>> not
> >>>>>> (e.g. JPEG encode, HEVC decode, ...) and return early if
> >>>>>> needed. I'm
> >>>>>> thinking we can just move the HAS_* macros
> >>>>>> (i.e. HAS_JPEG_ENCODING,
> >>>>>> HAS_HEVC_DECODING, ...) out of the src/i965_drv_video.c
> >>>>>> implementation
> >>>>>> file and put them into the src/i965_drv_video.h header
> >>>>>> file. This
> >>>>>> will
> >>>>>> allow tests to use the same macros that the driver uses, for
> >>>>>> example:
> >>>>>>
> >>>>>> TEST_F(JPEGEncodeTest, Simple)
> >>>>>> {
> >>>>>> struct i965_driver_data *i965(*this);
> >>>>>> ASSERT_PTR(i965);
> >>>>>> if (!HAS_JPEG_ENCODING(i965)) {
> >>>>>> RecordProperty("skipped", true);
> >>>>>> std::cout << “[SKIPPED] “ << testname() << “
> >>>>>> unsupported”
> >>>>>> return;
> >>>>>> }
> >>>>>>
> >>>>>> // do jpeg encode test
> >>>>>> }
> >>>>>>
> >>>>>> Does this seem reasonable enough? Are there other
> >>>>>> suggestions
> >>>>>> or
> >>>>>> recommendations?
> >>>>>>
> >>>>>> Cheers.
> >>>>>>
> >>>>>> U. Artie Eoff (11):
> >>>>>> test: add googletest release-1.8.0 source
> >>>>>> toolchain: build gtest convenience library
> >>>>>> test: add initial test_i965_drv_video target
> >>>>>> i965: compile driver source as convenience library
> >>>>>> test: link to i965 convenience library
> >>>>>> test: add i965 test fixture
> >>>>>> test: add an i965 initialize test
> >>>>>> test: add some JPEG decode test cases
> >>>>>> test: add some object_heap tests
> >>>>>> test: add some chipset tests
> >>>>>> test: add TESTING readme file
> >>>>>>
> >>>>>> Makefile.am | 5 +
> >>>>>> README | 7 +-
> >>>>>> TESTING | 147 +
> >>>>>> configure.ac | 11 +-
> >>>>>> src/Makefile.am | 17 +-
> >>>>>> test/Makefile.am | 91 +
> >>>>>> test/gtest/LICENSE | 28 +
> >>>>>> test/gtest/README.md | 280 +
> >>>>>> test/gtest/docs/AdvancedGuide.md | 2182
> >>>>>> ++++++++
> >>>>>> test/gtest/docs/DevGuide.md | 126 +
> >>>>>> test/gtest/docs/Documentation.md | 14 +
> >>>>>> test/gtest/docs/FAQ.md | 1087
> >>>>>> ++++
> >>>>>> test/gtest/docs/Primer.md | 502 ++
> >>>>>> test/gtest/docs/PumpManual.md | 177 +
> >>>>>> test/gtest/docs/Samples.md | 14 +
> >>>>>> test/gtest/docs/XcodeGuide.md | 93 +
> >>>>>> test/gtest/include/gtest/gtest-death-test.h | 294 ++
> >>>>>> test/gtest/include/gtest/gtest-message.h | 250 +
> >>>>>> test/gtest/include/gtest/gtest-param-test.h | 1444
> >>>>>> ++++++
> >>>>>> test/gtest/include/gtest/gtest-param-test.h.pump | 510 ++
> >>>>>> test/gtest/include/gtest/gtest-printers.h | 993
> >>>>>> ++++
> >>>>>> test/gtest/include/gtest/gtest-spi.h | 232 +
> >>>>>> test/gtest/include/gtest/gtest-test-part.h | 179 +
> >>>>>> test/gtest/include/gtest/gtest-typed-test.h | 263 +
> >>>>>> test/gtest/include/gtest/gtest.h | 2236
> >>>>>> ++++++++
> >>>>>> test/gtest/include/gtest/gtest_pred_impl.h | 358 ++
> >>>>>> test/gtest/include/gtest/gtest_prod.h | 58 +
> >>>>>> .../include/gtest/internal/custom/gtest-port.h | 69 +
> >>>>>> .../include/gtest/internal/custom/gtest-printers.h | 42 +
> >>>>>> test/gtest/include/gtest/internal/custom/gtest.h | 41 +
> >>>>>> .../gtest/internal/gtest-death-test-internal.h | 319 ++
> >>>>>> test/gtest/include/gtest/internal/gtest-filepath.h | 206 +
> >>>>>> test/gtest/include/gtest/internal/gtest-internal.h | 1238
> >>>>>> +++++
> >>>>>> .../include/gtest/internal/gtest-linked_ptr.h | 243 +
> >>>>>> .../gtest/internal/gtest-param-util-generated.h | 5146
> >>>>>> +++++++++++++++++++
> >>>>>> .../internal/gtest-param-util-generated.h.pump | 286 ++
> >>>>>> .../include/gtest/internal/gtest-param-util.h | 731
> >>>>>> +++
> >>>>>> .../gtest/include/gtest/internal/gtest-port-arch.h | 93 +
> >>>>>> test/gtest/include/gtest/internal/gtest-port.h | 2554
> >>>>>> ++++++++++
> >>>>>> test/gtest/include/gtest/internal/gtest-string.h | 167 +
> >>>>>> test/gtest/include/gtest/internal/gtest-tuple.h | 1020
> >>>>>> ++++
> >>>>>> .../include/gtest/internal/gtest-tuple.h.pump | 347 ++
> >>>>>> .../gtest/include/gtest/internal/gtest-type-util.h | 3331
> >>>>>> ++++++++++++
> >>>>>> .../include/gtest/internal/gtest-type-util.h.pump | 297 ++
> >>>>>> test/gtest/src/gtest-all.cc | 48 +
> >>>>>> test/gtest/src/gtest-death-test.cc | 1342
> >>>>>> +++++
> >>>>>> test/gtest/src/gtest-filepath.cc | 387 ++
> >>>>>> test/gtest/src/gtest-internal-inl.h | 1183
> >>>>>> +++++
> >>>>>> test/gtest/src/gtest-port.cc | 1259
> >>>>>> +++++
> >>>>>> test/gtest/src/gtest-printers.cc | 373 ++
> >>>>>> test/gtest/src/gtest-test-part.cc | 110 +
> >>>>>> test/gtest/src/gtest-typed-test.cc | 118 +
> >>>>>> test/gtest/src/gtest.cc | 5388
> >>>>>> ++++++++++++++++++++
> >>>>>> test/gtest/src/gtest_main.cc | 38 +
> >>>>>> test/i965_chipset_test.cpp | 104 +
> >>>>>> test/i965_initialize_test.cpp | 66 +
> >>>>>> test/i965_internal_decl.h | 74 +
> >>>>>> test/i965_jpeg_decode_test.cpp | 292 ++
> >>>>>> test/i965_jpeg_test_data.h | 1085
> >>>>>> ++++
> >>>>>> test/i965_test_fixture.cpp | 223 +
> >>>>>> test/i965_test_fixture.h | 237 +
> >>>>>> test/object_heap_test.cpp | 248 +
> >>>>>> test/test.h | 52 +
> >>>>>> test/test_main.cpp | 32 +
> >>>>>> 64 files changed, 40381 insertions(+), 6 deletions(-)
> >>>>>> create mode 100644 TESTING
> >>>>>> create mode 100644 test/Makefile.am
> >>>>>> create mode 100644 test/gtest/LICENSE
> >>>>>> create mode 100644 test/gtest/README.md
> >>>>>> create mode 100644 test/gtest/docs/AdvancedGuide.md
> >>>>>> create mode 100644 test/gtest/docs/DevGuide.md
> >>>>>> create mode 100644 test/gtest/docs/Documentation.md
> >>>>>> create mode 100644 test/gtest/docs/FAQ.md
> >>>>>> create mode 100644 test/gtest/docs/Primer.md
> >>>>>> create mode 100644 test/gtest/docs/PumpManual.md
> >>>>>> create mode 100644 test/gtest/docs/Samples.md
> >>>>>> create mode 100644 test/gtest/docs/XcodeGuide.md
> >>>>>> create mode 100644 test/gtest/include/gtest/gtest-death-
> >>>>>> test.h
> >>>>>> create mode 100644 test/gtest/include/gtest/gtest-message.h
> >>>>>> create mode 100644 test/gtest/include/gtest/gtest-param-
> >>>>>> test.h
> >>>>>> create mode 100644 test/gtest/include/gtest/gtest-param-
> >>>>>> test.h.pump
> >>>>>> create mode 100644 test/gtest/include/gtest/gtest-printers.h
> >>>>>> create mode 100644 test/gtest/include/gtest/gtest-spi.h
> >>>>>> create mode 100644 test/gtest/include/gtest/gtest-test-
> >>>>>> part.h
> >>>>>> create mode 100644 test/gtest/include/gtest/gtest-typed-
> >>>>>> test.h
> >>>>>> create mode 100644 test/gtest/include/gtest/gtest.h
> >>>>>> create mode 100644
> >>>>>> test/gtest/include/gtest/gtest_pred_impl.h
> >>>>>> create mode 100644 test/gtest/include/gtest/gtest_prod.h
> >>>>>> create mode 100644
> >>>>>> test/gtest/include/gtest/internal/custom/gtest-
> >>>>>> port.h
> >>>>>> create mode 100644
> >>>>>> test/gtest/include/gtest/internal/custom/gtest-
> >>>>>> printers.h
> >>>>>> create mode 100644
> >>>>>> test/gtest/include/gtest/internal/custom/gtest.h
> >>>>>> create mode 100644 test/gtest/include/gtest/internal/gtest-
> >>>>>> death-
> >>>>>> test-internal.h
> >>>>>> create mode 100644 test/gtest/include/gtest/internal/gtest-
> >>>>>> filepath.h
> >>>>>> create mode 100644 test/gtest/include/gtest/internal/gtest-
> >>>>>> internal.h
> >>>>>> create mode 100644 test/gtest/include/gtest/internal/gtest-
> >>>>>> linked_ptr.h
> >>>>>> create mode 100644 test/gtest/include/gtest/internal/gtest-
> >>>>>> param-
> >>>>>> util-generated.h
> >>>>>> create mode 100644 test/gtest/include/gtest/internal/gtest-
> >>>>>> param-
> >>>>>> util-generated.h.pump
> >>>>>> create mode 100644 test/gtest/include/gtest/internal/gtest-
> >>>>>> param-
> >>>>>> util.h
> >>>>>> create mode 100644 test/gtest/include/gtest/internal/gtest-
> >>>>>> port-
> >>>>>> arch.h
> >>>>>> create mode 100644 test/gtest/include/gtest/internal/gtest-
> >>>>>> port.h
> >>>>>> create mode 100644 test/gtest/include/gtest/internal/gtest-
> >>>>>> string.h
> >>>>>> create mode 100644 test/gtest/include/gtest/internal/gtest-
> >>>>>> tuple.h
> >>>>>> create mode 100644 test/gtest/include/gtest/internal/gtest-
> >>>>>> tuple.h.pump
> >>>>>> create mode 100644 test/gtest/include/gtest/internal/gtest-
> >>>>>> type-
> >>>>>> util.h
> >>>>>> create mode 100644 test/gtest/include/gtest/internal/gtest-
> >>>>>> type-
> >>>>>> util.h.pump
> >>>>>> create mode 100644 test/gtest/src/gtest-all.cc
> >>>>>> create mode 100644 test/gtest/src/gtest-death-test.cc
> >>>>>> create mode 100644 test/gtest/src/gtest-filepath.cc
> >>>>>> create mode 100644 test/gtest/src/gtest-internal-inl.h
> >>>>>> create mode 100644 test/gtest/src/gtest-port.cc
> >>>>>> create mode 100644 test/gtest/src/gtest-printers.cc
> >>>>>> create mode 100644 test/gtest/src/gtest-test-part.cc
> >>>>>> create mode 100644 test/gtest/src/gtest-typed-test.cc
> >>>>>> create mode 100644 test/gtest/src/gtest.cc
> >>>>>> create mode 100644 test/gtest/src/gtest_main.cc
> >>>>>> create mode 100644 test/i965_chipset_test.cpp
> >>>>>> create mode 100644 test/i965_initialize_test.cpp
> >>>>>> create mode 100644 test/i965_internal_decl.h
> >>>>>> create mode 100644 test/i965_jpeg_decode_test.cpp
> >>>>>> create mode 100644 test/i965_jpeg_test_data.h
> >>>>>> create mode 100644 test/i965_test_fixture.cpp
> >>>>>> create mode 100644 test/i965_test_fixture.h
> >>>>>> create mode 100644 test/object_heap_test.cpp
> >>>>>> create mode 100644 test/test.h
> >>>>>> create mode 100644 test/test_main.cpp
> >>> _______________________________________________
> >>> Libva mailing list
> >>> Libva at lists.freedesktop.org
> >>> https://lists.freedesktop.org/mailman/listinfo/libva
> >> _______________________________________________
> >> Libva mailing list
> >> Libva at lists.freedesktop.org
> >> https://lists.freedesktop.org/mailman/listinfo/libva
> > _______________________________________________
> > Libva mailing list
> > Libva at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/libva
More information about the Libva
mailing list