I was able to duplicate and debug on Ubuntu 14.04... patch sent to list. ---- U. Artie
> -----Original Message----- > From: Sean V Kelley [mailto:[email protected]] > Sent: Wednesday, September 07, 2016 12:16 PM > To: Xiang, Haihao <[email protected]>; Eoff, Ullysses A > <[email protected]> > Cc: [email protected] > Subject: Re: [Libva] [PATCH RFC intel-driver 00/11] Automated (Unit) Test > Suite > > > > On Sep 7, 2016, at 10:35 AM, Sean V Kelley <[email protected]> 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 <[email protected]>; [email protected] > >>>>> 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 > >>> [email protected] > >>> https://lists.freedesktop.org/mailman/listinfo/libva > >> _______________________________________________ > >> Libva mailing list > >> [email protected] > >> https://lists.freedesktop.org/mailman/listinfo/libva > > _______________________________________________ > > Libva mailing list > > [email protected] > > https://lists.freedesktop.org/mailman/listinfo/libva _______________________________________________ Libva mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libva
