[PATCH] tests: add chmod.test

Anchit Jain mailinglist at anchitja.in
Sat Mar 5 05:41:26 UTC 2016



05.03.2016, 03:12, "Dmitry V. Levin" <ldv at altlinux.org>:
> On Fri, Mar 04, 2016 at 08:45:48PM +0000, Anchit Jain wrote:
> [...]
>>  +#include "tests.h"
>>  +#include <assert.h>
>
> As you no longer use assert, no need to include <assert.h>.
>
>>  +#include <fcntl.h>
>>  +#include <stdio.h>
>>  +#include <unistd.h>
>>  +#include <errno.h>
>>  +#include <sys/syscall.h>
>>  +
>>  +#if defined __NR_chmod
>
> The only two headers that have to be included before __NR_chmod test
> are "tests.h" and <sys/syscall.h>.
>
> In case you are in pedantic mood, all the rest could be included
> after __NR_chmod test, like in tests/alarm.c and many similar tests.
>
>>  +
>>  +int
>>  +main(void)
>>  +{
>>  + static const char fname[] = "chmod_test_file";
>>  + int fd = open(fname, O_CREAT|O_RDONLY, 0400);
>>  +
>>  + if (fd == -1)
>>  + perror_msg_and_fail("open");
>>  +
>>  + if (syscall(__NR_chmod, fname, 0600) != 0)
>>  + {
>
> The opening brace should be placed on "if" line.
>
>>  + if (errno == ENOSYS)
>>  + perror_msg_and_fail("chmod ENOSYS");
>
> If chmod has failed with ENOSYS, it might be a normal condition
> on some architectures, so it shouldn't be treated as a test error.
> Just print it using
>
>         printf("chmod(\"%s\", 0600) = -1 ENOENT (%m)\n", fname);

But the test should not continue after this, so if I replace "perror_msg_and_fail" with "printf" test would eventually get failed by "perror_msg_and_fail" in the next line. So how should I exit/skip the test here without printing to stderr? 

>
>>  + perror_msg_and_fail("chmod");
>>  + }
>>  + printf("chmod(\"%s\", 0600) = 0\n", fname);
>>  + int ret = unlink(fname);
>>  + if (ret == -1)
>>  + perror_msg_and_fail("unlink");
>
> No need to save return value if there are no plans to use it.
> The idiom for this kind of checks is
>
>         if (unlink(fname))
>                 perror_msg_and_fail("unlink");
>
> --
> ldv
> ,
>
> ------------------------------------------------------------------------------
> ,
>
> _______________________________________________
> Strace-devel mailing list
> Strace-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/strace-devel

-- 
Sincerely, Anchit Jain
mailinglist at anchitja.in




More information about the Strace-devel mailing list