My first ATF test

Alan Somers asomers at
Wed Feb 26 03:59:14 UTC 2014

On Tue, Feb 25, 2014 at 11:33 AM, Peter Holm <peter at> wrote:
> On Tue, Feb 25, 2014 at 09:47:52AM -0700, Alan Somers wrote:
>> On Tue, Feb 25, 2014 at 9:11 AM, Peter Holm <peter at> wrote:
>> > In order to understand how ATF works I wrote a small test so I had
>> > something to work with:
>> >
>> > Did I get it right?
>> ATF-wise, it looks good.  However, it's a bad idea to use random
>> numbers in test code, except in stress tests.  Random numbers result
>> in irreproducible tests.  How about replacing the body of dup2_r234131
>> with something like this?
> Thank you for looking at this.
>>   int fd1, fd2, ret;
>>   fd1 =  open("/etc/passwd", O_RDONLY);
>>   fd2 = INT_MAX;
>>   ret = dup2(fd1, fd2);
>>   ATF_CHECK_EQ(-1, ret);
>>   ATF_CHECK_EQ(EBADF, errno);
> OK.
>> On a side note, perhaps WARNS should be set in, so we
>> won't have to set it in every other Makefile.
> I agree.
> I have a style question:
> You have the constant as first argument to ATF_CHECK_EQ. It seems
> that NetBSD has chosen to have it last, in most cases. Is your
> choice the FreeBSD standard?

The atf-c-api(3) man page doesn't recommend one or the other, and its
examples show it both ways.  My personal habit is to put the constant
first.  It's been ingrained by both googletest and Ruby's test/unit,
which both have a clear policy.  Personally, I would say that if
you're editing an existing file, try to keep with its preexisting
style.  Otherwise, I don't think it matters.

More information about the freebsd-testing mailing list