]> granicus.if.org Git - strace/blob - tests/renameat2.c
Update copyright headers
[strace] / tests / renameat2.c
1 /*
2  * Check decoding of renameat2 syscall.
3  *
4  * Copyright (c) 2015-2018 Dmitry V. Levin <ldv@altlinux.org>
5  * All rights reserved.
6  *
7  * SPDX-License-Identifier: GPL-2.0-or-later
8  */
9
10 #include "tests.h"
11 #include <asm/unistd.h>
12 #include "scno.h"
13
14 #ifdef __NR_renameat2
15
16 # include <stdio.h>
17 # include <unistd.h>
18
19 int
20 main(void)
21 {
22         static const char oldpath[] = "renameat2_oldpath";
23         static const char newpath[] = "renameat2_newpath";
24         const unsigned long olddirfd =
25                 (unsigned long) 0xfacefeedffffffff;
26         const unsigned long newdirfd =
27                 (unsigned long) 0xfacefeed00000000 | -100U;
28
29         long rc = syscall(__NR_renameat2,
30                           olddirfd, oldpath, newdirfd, newpath, 1);
31         printf("renameat2(%d, \"%s\", AT_FDCWD, \"%s\", RENAME_NOREPLACE)"
32                " = %ld %s (%m)\n",
33                (int) olddirfd, oldpath, newpath, rc, errno2name());
34
35         puts("+++ exited with 0 +++");
36         return 0;
37 }
38
39 #else
40
41 SKIP_MAIN_UNDEFINED("__NR_renameat2")
42
43 #endif