Bruce Momjian <bruce@momjian.us> writes:
>> Tom Lane wrote:
>>> The cases that I think we most need to defend against are
>>> (A) diff program not found
> In summary, on MinGW, files differ or 'diff' not found, returns 1. If
> one of the files to be compared does not exist, it returns 2. And of
> course, if the files are the same, it returns zero.
OK. The problem here is that pg_regress is coded to assume that
zero-length output file represents success. Given the above Windows
behavior that is *clearly* not good enough, because that's probably
exactly what we will see after diff-not-found (if the Windows shell
acts like a Unix shell does and creates the ">" target first).
I'd suggest modifying the logic so that zero-length output file with a
nonzero return from the child be treated as a fatal condition (not just
a difference, but bail out).
regards, tom lane