[ovs-dev] [PATCH 04/16] test-util: Changes for 'assert' test on Windows.

Ben Pfaff blp at nicira.com
Mon Jun 9 22:13:35 UTC 2014


On Fri, May 30, 2014 at 12:06:12PM -0700, Gurucharan Shetty wrote:
> There is no 'kill -l' type functionality available on Windows.
> So instead of looking for the string 'ABRT', check for the exit
> code which when run on msys (unit test environment) is 9.

We could unify this a bit: on Unix-like environments, the exit status
in the same circumstances should be 134 (SIGABRT + 128).  So the
Windows versus Unix difference could just be the exit status we test
for.

I don't know whether shell $variables are expanded in the "exit
status" parameter to AT_CHECK.

> Also, after a call to abort(), on Windows, stderr does not get
> flushed to any file. So, do not look for it.

I don't think that Unix-like systems flush stderr to a file after
abort(), either.  I think that the reason that this works on Unix-like
systems is because stderr is line-buffered (not fully buffered) by
default.  That is supposed to be the case on every compliant C
implementation (there are only three kinds of buffering: not buffered,
line buffered, fully buffered):

    As initially opened, the standard error stream is not fully
    buffered; the standard input and standard output streams are fully
    buffered if and only if the stream can be determined not to refer
    to an interactive device.

But: if you add something to ovstest.c initialization that changes
stderr to line-buffered, does it make the need for this change go
away?

Thanks,

Ben.



More information about the dev mailing list