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 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] > > 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/google > > > 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 > > >
./test_i965_drv_video [==========] Running 30 tests from 5 test cases. [----------] Global test environment set-up. [----------] 3 tests from ChipsetTest [ RUN ] ChipsetTest.Unique [ OK ] ChipsetTest.Unique (0 ms) [ RUN ] ChipsetTest.GetCodecInfo [ OK ] ChipsetTest.GetCodecInfo (0 ms) [ RUN ] ChipsetTest.GetDeviceInfo [ OK ] ChipsetTest.GetDeviceInfo (0 ms) [----------] 3 tests from ChipsetTest (0 ms total) [----------] 1 test from DriverTest [ RUN ] DriverTest.Initialize libva info: VA-API version 0.39.3 libva info: va_getDriverName() returns 0 libva info: User requested driver 'i965' libva info: Trying to open /home/xhh/graphics/ex/vaapi/libva-intel-driver/src/.libs/i965_drv_video.so libva info: Found init function __vaDriverInit_0_39 libva info: va_openDriver() returns 0 [ OK ] DriverTest.Initialize (2 ms) [----------] 1 test from DriverTest (2 ms total) [----------] 1 test from I965TestFixtureTest [ RUN ] I965TestFixtureTest.Logic libva info: VA-API version 0.39.3 libva info: va_getDriverName() returns 0 libva info: User requested driver 'i965' libva info: Trying to open /home/xhh/graphics/ex/vaapi/libva-intel-driver/src/.libs/i965_drv_video.so libva info: Found init function __vaDriverInit_0_39 libva info: va_openDriver() returns 0 [ OK ] I965TestFixtureTest.Logic (1 ms) [----------] 1 test from I965TestFixtureTest (1 ms total) [----------] 5 tests from ObjectHeapTest [ RUN ] ObjectHeapTest.Init [ OK ] ObjectHeapTest.Init (0 ms) [ RUN ] ObjectHeapTest.AllocateAndLookup [ OK ] ObjectHeapTest.AllocateAndLookup (0 ms) [ RUN ] ObjectHeapTest.Iterate [ OK ] ObjectHeapTest.Iterate (0 ms) [ RUN ] ObjectHeapTest.DataIntegrity [ OK ] ObjectHeapTest.DataIntegrity (0 ms) [ RUN ] ObjectHeapTest.OffsetID [ OK ] ObjectHeapTest.OffsetID (8 ms) [----------] 5 tests from ObjectHeapTest (8 ms total) [----------] 20 tests from JPEG/FourCCTest [ RUN ] JPEG/FourCCTest.Decode/0 libva info: VA-API version 0.39.3 libva info: va_getDriverName() returns 0 libva info: User requested driver 'i965' libva info: Trying to open /home/xhh/graphics/ex/vaapi/libva-intel-driver/src/.libs/i965_drv_video.so libva info: Found init function __vaDriverInit_0_39 libva info: va_openDriver() returns 0 [ OK ] JPEG/FourCCTest.Decode/0 (2 ms) [ RUN ] JPEG/FourCCTest.Decode/1 libva info: VA-API version 0.39.3 libva info: va_getDriverName() returns 0 libva info: User requested driver 'i965' libva info: Trying to open /home/xhh/graphics/ex/vaapi/libva-intel-driver/src/.libs/i965_drv_video.so libva info: Found init function __vaDriverInit_0_39 libva info: va_openDriver() returns 0 [ OK ] JPEG/FourCCTest.Decode/1 (2 ms) [ RUN ] JPEG/FourCCTest.Decode/2 libva info: VA-API version 0.39.3 libva info: va_getDriverName() returns 0 libva info: User requested driver 'i965' libva info: Trying to open /home/xhh/graphics/ex/vaapi/libva-intel-driver/src/.libs/i965_drv_video.so libva info: Found init function __vaDriverInit_0_39 libva info: va_openDriver() returns 0 [ OK ] JPEG/FourCCTest.Decode/2 (2 ms) [ RUN ] JPEG/FourCCTest.Decode/3 libva info: VA-API version 0.39.3 libva info: va_getDriverName() returns 0 libva info: User requested driver 'i965' libva info: Trying to open /home/xhh/graphics/ex/vaapi/libva-intel-driver/src/.libs/i965_drv_video.so libva info: Found init function __vaDriverInit_0_39 libva info: va_openDriver() returns 0 [ OK ] JPEG/FourCCTest.Decode/3 (2 ms) [ RUN ] JPEG/FourCCTest.Decode/4 libva info: VA-API version 0.39.3 libva info: va_getDriverName() returns 0 libva info: User requested driver 'i965' libva info: Trying to open /home/xhh/graphics/ex/vaapi/libva-intel-driver/src/.libs/i965_drv_video.so libva info: Found init function __vaDriverInit_0_39 libva info: va_openDriver() returns 0 [ OK ] JPEG/FourCCTest.Decode/4 (2 ms) [ RUN ] JPEG/FourCCTest.Decode/5 libva info: VA-API version 0.39.3 libva info: va_getDriverName() returns 0 libva info: User requested driver 'i965' libva info: Trying to open /home/xhh/graphics/ex/vaapi/libva-intel-driver/src/.libs/i965_drv_video.so libva info: Found init function __vaDriverInit_0_39 libva info: va_openDriver() returns 0 [ OK ] JPEG/FourCCTest.Decode/5 (2 ms) [ RUN ] JPEG/FourCCTest.Decode/6 libva info: VA-API version 0.39.3 libva info: va_getDriverName() returns 0 libva info: User requested driver 'i965' libva info: Trying to open /home/xhh/graphics/ex/vaapi/libva-intel-driver/src/.libs/i965_drv_video.so libva info: Found init function __vaDriverInit_0_39 libva info: va_openDriver() returns 0 [ OK ] JPEG/FourCCTest.Decode/6 (2 ms) [ RUN ] JPEG/FourCCTest.Decode/7 libva info: VA-API version 0.39.3 libva info: va_getDriverName() returns 0 libva info: User requested driver 'i965' libva info: Trying to open /home/xhh/graphics/ex/vaapi/libva-intel-driver/src/.libs/i965_drv_video.so libva info: Found init function __vaDriverInit_0_39 libva info: va_openDriver() returns 0 [ OK ] JPEG/FourCCTest.Decode/7 (1 ms) [ RUN ] JPEG/FourCCTest.Decode/8 libva info: VA-API version 0.39.3 libva info: va_getDriverName() returns 0 libva info: User requested driver 'i965' libva info: Trying to open /home/xhh/graphics/ex/vaapi/libva-intel-driver/src/.libs/i965_drv_video.so libva info: Found init function __vaDriverInit_0_39 libva info: va_openDriver() returns 0 [ OK ] JPEG/FourCCTest.Decode/8 (2 ms) [ RUN ] JPEG/FourCCTest.Decode/9 libva info: VA-API version 0.39.3 libva info: va_getDriverName() returns 0 libva info: User requested driver 'i965' libva info: Trying to open /home/xhh/graphics/ex/vaapi/libva-intel-driver/src/.libs/i965_drv_video.so libva info: Found init function __vaDriverInit_0_39 libva info: va_openDriver() returns 0 [ OK ] JPEG/FourCCTest.Decode/9 (2 ms) [ RUN ] JPEG/FourCCTest.Decode/10 libva info: VA-API version 0.39.3 libva info: va_getDriverName() returns 0 libva info: User requested driver 'i965' libva info: Trying to open /home/xhh/graphics/ex/vaapi/libva-intel-driver/src/.libs/i965_drv_video.so libva info: Found init function __vaDriverInit_0_39 libva info: va_openDriver() returns 0 [ OK ] JPEG/FourCCTest.Decode/10 (2 ms) [ RUN ] JPEG/FourCCTest.Decode/11 libva info: VA-API version 0.39.3 libva info: va_getDriverName() returns 0 libva info: User requested driver 'i965' libva info: Trying to open /home/xhh/graphics/ex/vaapi/libva-intel-driver/src/.libs/i965_drv_video.so libva info: Found init function __vaDriverInit_0_39 libva info: va_openDriver() returns 0 [ OK ] JPEG/FourCCTest.Decode/11 (2 ms) [ RUN ] JPEG/FourCCTest.Decode/12 libva info: VA-API version 0.39.3 libva info: va_getDriverName() returns 0 libva info: User requested driver 'i965' libva info: Trying to open /home/xhh/graphics/ex/vaapi/libva-intel-driver/src/.libs/i965_drv_video.so libva info: Found init function __vaDriverInit_0_39 libva info: va_openDriver() returns 0 [ OK ] JPEG/FourCCTest.Decode/12 (1 ms) [ RUN ] JPEG/FourCCTest.Decode/13 libva info: VA-API version 0.39.3 libva info: va_getDriverName() returns 0 libva info: User requested driver 'i965' libva info: Trying to open /home/xhh/graphics/ex/vaapi/libva-intel-driver/src/.libs/i965_drv_video.so libva info: Found init function __vaDriverInit_0_39 libva info: va_openDriver() returns 0 [ OK ] JPEG/FourCCTest.Decode/13 (2 ms) [ RUN ] JPEG/FourCCTest.Decode/14 libva info: VA-API version 0.39.3 libva info: va_getDriverName() returns 0 libva info: User requested driver 'i965' libva info: Trying to open /home/xhh/graphics/ex/vaapi/libva-intel-driver/src/.libs/i965_drv_video.so libva info: Found init function __vaDriverInit_0_39 libva info: va_openDriver() returns 0 [ OK ] JPEG/FourCCTest.Decode/14 (2 ms) [ RUN ] JPEG/FourCCTest.Decode/15 libva info: VA-API version 0.39.3 libva info: va_getDriverName() returns 0 libva info: User requested driver 'i965' libva info: Trying to open /home/xhh/graphics/ex/vaapi/libva-intel-driver/src/.libs/i965_drv_video.so libva info: Found init function __vaDriverInit_0_39 libva info: va_openDriver() returns 0 make: *** [check-local] Segmentation fault
_______________________________________________ Libva mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libva
