Mir

Merge lp://qastaging/~vanvugt/mir/fix-1342092 into lp://qastaging/mir

Proposed by Daniel van Vugt
Status: Merged
Approved by: Alan Griffiths
Approved revision: no longer in the source branch.
Merged at revision: 3412
Proposed branch: lp://qastaging/~vanvugt/mir/fix-1342092
Merge into: lp://qastaging/mir
Diff against target: 357 lines (+108/-25)
9 files modified
include/test/mir_test_framework/interprocess_client_server_test.h (+2/-0)
tests/acceptance-tests/server_signal_handling.cpp (+8/-2)
tests/acceptance-tests/test_server_shutdown.cpp (+5/-5)
tests/acceptance-tests/throwback/test_client_library_errors.cpp (+14/-6)
tests/include/mir/test/death.h (+49/-0)
tests/mir_test_framework/interprocess_client_server_test.cpp (+11/-0)
tests/unit-tests/dispatch/test_threaded_dispatcher.cpp (+7/-3)
tests/unit-tests/test_fatal.cpp (+7/-5)
tests/unit-tests/test_udev_wrapper.cpp (+5/-4)
To merge this branch: bzr merge lp://qastaging/~vanvugt/mir/fix-1342092
Reviewer Review Type Date Requested Status
Mir CI Bot continuous-integration Approve
Alexandros Frantzis (community) Approve
Alan Griffiths Approve
Mir development team Pending
Kevin DuBois Pending
Chris Halse Rogers Pending
Review via email: mp+289454@code.qastaging.launchpad.net

Commit message

Avoid dumping core from death tests that are expected to die
(LP: #1342092)

But try to remember to only disable cores in child processes, so that
faulty tests can still dump core.

To post a comment you must log in.
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3364
https://mir-jenkins.ubuntu.com/job/mir-ci/616/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/528/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/558
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/550
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/550
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/538/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/538
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/538/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/538
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/538/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/538
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/538/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/538/console

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/616/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Not related:
[ FAILED ] NestedServer.named_cursor_image_changes_are_forwarded_to_host

And also not related:
std::exception::what: Failed to read from device: /dev/random after: 30 seconds
(LP: #1541188)

Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:3365
https://mir-jenkins.ubuntu.com/job/mir-ci/618/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/532
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/562
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/554
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/554
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/542
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/542/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/542
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/542/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/542
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/542/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/542
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/542/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/542
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/542/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/618/rebuild

review: Approve (continuous-integration)
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:3366
https://mir-jenkins.ubuntu.com/job/mir-ci/619/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/534
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/564
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/556
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/556
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/544
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/544/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/544
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/544/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/544
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/544/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/544
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/544/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/544
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/544/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/619/rebuild

review: Approve (continuous-integration)
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

Nits, (could be addressed later)

=== added file 'tests/include/mir/test/death.h'

Might be a useful addition to mirtest-dev (i.e. tests/include/mir/test/death.h => include/mir/test/death.h)

~~~~

+#include <sys/resource.h>
...
+inline void disable_core_dump()
+{
+ struct rlimit zeroes{0,0};
+ setrlimit(RLIMIT_CORE, &zeroes);
+}

Moving this function out of line would avoid adding the above #include to all TUs that use this header.

review: Approve
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

1. Yeah I considered that, but our public APIs are too large already. Better to keep things private till they need to be public.

2. I did also consider non-inlining that function. Although the inline approach was initially just for a quick proof of concept, I think it's probably more efficient to keep it that way. If you consider the full namespace 'mir::test::disable_core_dump' then the symbol name is probably longer than the machine code of the function. So more efficient to inline it with no function call/linkage.
   I would also argue that it's effectively a single-line function and as such should even not exist at all -- callers perhaps should just setrlimit() themselves.

Revision history for this message
Alexandros Frantzis (afrantzis) wrote :

> 2. I did also consider non-inlining that function. Although the inline approach was initially
> just for a quick proof of concept, I think it's probably more efficient to keep it that way

I don't think we should care about this level of efficiency in the tests. I would also prefer a non-inlined version, but not enough to block.

review: Approve
Revision history for this message
Mir CI Bot (mir-ci-bot) :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches