[Libva] [PATCH RFC intel-driver 00/11] Automated (Unit) Test Suite
Sean V Kelley
seanvk at posteo.de
Wed Sep 7 19:15:44 UTC 2016
> 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <https://lists.freedesktop.org/archives/libva/attachments/20160907/5728f0bf/attachment-0001.sig>
More information about the Libva
mailing list