• Tom Lane's avatar
    Remove infinite-loop hazards in ecpg test suite. · d5a1fde3
    Tom Lane authored
    A report from Andrew Dunstan showed that an ecpglib breakage that
    causes repeated query failures could lead to infinite loops in some
    ecpg test scripts, because they contain "while(1)" loops with no
    exit condition other than successful test completion.  That might
    be all right for manual testing, but it seems entirely unacceptable
    for automated test environments such as our buildfarm.  We don't
    want buildfarm owners to have to intervene manually when a test
    goes wrong.
    
    To fix, just change all those while(1) loops to exit after at most
    100 iterations (which is more than any of them expect to iterate).
    This seems sufficient since we'd see discrepancies in the test output
    if any loop executed the wrong number of times.
    
    I tested this by dint of intentionally breaking ecpg_do_prologue
    to always fail, and verifying that the tests still got to completion.
    
    Back-patch to all supported branches, since the whole point of this
    exercise is to protect the buildfarm against future mistakes.
    
    Discussion: https://postgr.es/m/18693.1548302004@sss.pgh.pa.us
    d5a1fde3
preproc-autoprep.c 6.02 KB