• Aaron Hill's avatar
    qmgr/tests: Fix issues with handling of transient errors. · 25380774
    Aaron Hill authored
    When a BITS job is being transferred, it may enter into the state
    BG_JOB_STATE_TRANSIENT_ERROR (for example, if the hostname fails to
    resolve). Currently, entering this state causes qmgr job tests to fail,
    even though it may occur due to temporary network issues out of our
    control.
    
    If a job enters BG_JOB_STATE_TRANSIENT_ERROR before the timeout has
    elapsed, attempt to resume the job using
    IBackgroundCopyJob_Resume. If the job is still in
    BG_JOB_STATE_TRANSIENT_ERROR, query BITS for detailed error
    information, and print it out.
    
    Additionally, ensure that we are able to transfer files on Windows 10
    with a metered connection. By default, BITS will not attempt to transfer
    a job on a metered connection, instead failing with
    BG_JOB_STATE_TRANSIENT_ERROR. On newer versions of Windows, we can
    use IBackgroundCopyJob5 to set the transfer policy, forcing the job to
    run even on a metered connection. This allows qmgr job tests to pass on
    the testbot Windows 10 VMs, which have metered connections enabled in
    order to disable Windows Update.
    
    Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50048Signed-off-by: 's avatarAaron Hill <aa1ronham@gmail.com>
    Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
    25380774