Skip to content
  • Daniel P. Berrangé's avatar
    tests: don't silence error reporting for all tests · 977a7204
    Daniel P. Berrangé authored
    The test-vmstate test is a bit chatty because it triggers various
    expected failure scenarios and the code in question uses error_report
    instead of accepting 'Error **errp' parameters. To silence this test the
    stubs for error_vprintf() were changed to send errors via
    g_test_message() instead of stderr:
    
      commit 28017e01
    
    
      Author: Paolo Bonzini <pbonzini@redhat.com>
      Date:   Mon Oct 24 18:31:03 2016 +0200
    
        tests: send error_report to test log
    
        Implement error_vprintf to send the output of error_report to
        the test log.  This silences test-vmstate.
    
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
        Message-Id: <1477326663-67817-3-git-send-email-pbonzini@redhat.com>
    
    Unfortunately this change has global impact across the entire test suite
    and means that when tests fail for unexpected reasons, the message is
    not displayed on stderr. eg when using &error_abort in a call the test
    merely prints
    
      Unexpected error in qcrypto_tls_session_check_certificate() at crypto/tlssession.c:280:
    
    and the actual error message is hidden, making it impossible to diagnose
    the failure. This is especially problematic in CI or build systems where
    it isn't possible to easily pass the --debug-log flag to tests and
    re-run with the test log visible.
    
    This change makes the previous big hammer much more nuanced, providing a
    flag in the stub error_vprintf() that can used on a per-test basis to
    silence the errors. Only the test-vmstate silences errors initially.
    
    Reviewed-by: default avatarPhilippe Mathieu-Daudé <f4bug@amsat.org>
    Tested-by: default avatarPhilippe Mathieu-Daudé <f4bug@amsat.org>
    Signed-off-by: default avatarDaniel P. Berrangé <berrange@redhat.com>
    977a7204