psxhdrs: Add POSIX API Signature Compliance Tests for sys/stat.h (GCI 2018)

This commit is contained in:
Jacob Shin
2018-12-09 16:33:59 -06:00
committed by Joel Sherrill
parent b009cfb638
commit 9e7e8b3f2c
17 changed files with 644 additions and 6 deletions
+22 -6
View File
@@ -1084,6 +1084,28 @@ lib_a_SOURCES = psxhdrs/devctl/posix_devctl.c \
psxhdrs/sys/socket/sendto.c psxhdrs/sys/socket/setsockopt.c \
psxhdrs/sys/socket/shutdown.c psxhdrs/sys/socket/socket.c \
psxhdrs/sys/socket/socketpair.c \
psxhdrs/sys/stat/chmod.c \
psxhdrs/sys/stat/fchmodat.c \
psxhdrs/sys/stat/fchmod.c \
psxhdrs/sys/stat/fstatat.c \
psxhdrs/sys/stat/fstat.c \
psxhdrs/sys/stat/futimens.c \
psxhdrs/sys/stat/lstat.c \
psxhdrs/sys/stat/mkdirat.c \
psxhdrs/sys/stat/mkdir.c \
psxhdrs/sys/stat/mkfifoat.c \
psxhdrs/sys/stat/mkfifo.c \
psxhdrs/sys/stat/mknodat.c \
psxhdrs/sys/stat/mknod.c \
psxhdrs/sys/stat/stat.c \
psxhdrs/sys/stat/umask.c \
psxhdrs/sys/stat/utimensat.c \
psxhdrs/sys/time/select.c \
psxhdrs/sys/time/utimes.c \
psxhdrs/sys/time/setitimer.c \
psxhdrs/sys/time/getitimer.c \
psxhdrs/sys/time/gettimeofday.c \
psxhdrs/sys/utsname/uname.c \
psxhdrs/dirent/alphasort.c \
psxhdrs/dirent/closedir.c \
psxhdrs/dirent/opendir.c \
@@ -1437,15 +1459,9 @@ lib_a_SOURCES = psxhdrs/devctl/posix_devctl.c \
psxhdrs/iconv/iconv_close.c \
psxhdrs/iconv/iconv_open.c \
psxhdrs/regex/regfree.c \
psxhdrs/sys/time/select.c \
psxhdrs/sys/time/utimes.c \
psxhdrs/sys/time/setitimer.c \
psxhdrs/sys/time/getitimer.c \
psxhdrs/sys/time/gettimeofday.c \
psxhdrs/langinfo/nl_langinfo.c \
psxhdrs/langinfo/nl_langinfo_l.c \
psxhdrs/assert/assert.c \
psxhdrs/sys/utsname/uname.c \
psxhdrs/complex/cabs.c \
psxhdrs/complex/cabsf.c \
psxhdrs/complex/cabsl.c \
@@ -0,0 +1,38 @@
/**
* @file
* @brief chmod() API Conformance Test
*/
/*
* COPYRIGHT (c) 2018.
* Jacob Shin
*
* Permission to use, copy, modify, and/or distribute this software
* for any purpose with or without fee is hereby granted.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
* BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <sys/stat.h>
int test( void );
int test( void )
{
int return_value;
char *path = "/";
mode_t mode = S_ISUID;
return_value = chmod(path, mode);
return (return_value != -1);
}
@@ -0,0 +1,38 @@
/**
* @file
* @brief fchmod() API Conformance Test
*/
/*
* COPYRIGHT (c) 2018.
* Jacob Shin
*
* Permission to use, copy, modify, and/or distribute this software
* for any purpose with or without fee is hereby granted.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
* BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <sys/stat.h>
int test( void );
int test( void )
{
int return_value;
int fildes = 1;
mode_t mode = S_ISUID;
return_value = fchmod(fildes, mode);
return (return_value != -1);
}
@@ -0,0 +1,41 @@
/**
* @file
* @brief fchmodat() API Conformance Test
*/
/*
* COPYRIGHT (c) 2018.
* Jacob Shin
*
* Permission to use, copy, modify, and/or distribute this software
* for any purpose with or without fee is hereby granted.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
* BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <sys/stat.h>
#include <fcntl.h>
int test( void );
int test( void )
{
int return_value;
int fd = 1;
char *path = "/";
mode_t mode = S_ISUID;
int flag = AT_SYMLINK_NOFOLLOW;
return_value = fchmodat(fd, path, mode, flag);
return (return_value != -1);
}
@@ -0,0 +1,38 @@
/**
* @file
* @brief fstat() API Conformance Test
*/
/*
* COPYRIGHT (c) 2018.
* Jacob Shin
*
* Permission to use, copy, modify, and/or distribute this software
* for any purpose with or without fee is hereby granted.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
* BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <sys/stat.h>
int test( void );
int test( void )
{
int return_value;
int fildes = 1;
struct stat buf;
return_value = fstat(fildes, &buf);
return (return_value != -1);
}
@@ -0,0 +1,41 @@
/**
* @file
* @brief fstatat() API Conformance Test
*/
/*
* COPYRIGHT (c) 2018.
* Jacob Shin
*
* Permission to use, copy, modify, and/or distribute this software
* for any purpose with or without fee is hereby granted.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
* BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <sys/stat.h>
#include <fcntl.h>
int test( void );
int test( void )
{
int return_value;
int fildes = 1;
char *path = "/";
struct stat buf;
int flag = AT_SYMLINK_NOFOLLOW;
return_value = fstatat(fildes, path, &buf, flag);
return (return_value != -1);
}
@@ -0,0 +1,39 @@
/**
* @file
* @brief futimens() API Conformance Test
*/
/*
* COPYRIGHT (c) 2018.
* Jacob Shin
*
* Permission to use, copy, modify, and/or distribute this software
* for any purpose with or without fee is hereby granted.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
* BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <sys/stat.h>
int test( void );
int test( void )
{
int return_value;
int fd = 1;
struct timespec times[2];
return_value = futimens(fd, times);
return (return_value != -1);
}
@@ -0,0 +1,38 @@
/**
* @file
* @brief lstat() API Conformance Test
*/
/*
* COPYRIGHT (c) 2018.
* Jacob Shin
*
* Permission to use, copy, modify, and/or distribute this software
* for any purpose with or without fee is hereby granted.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
* BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <sys/stat.h>
int test( void );
int test( void )
{
int return_value;
char *path = "/";
struct stat buf;
return_value = lstat(path, &buf);
return (return_value != -1);
}
@@ -0,0 +1,38 @@
/**
* @file
* @brief mkdir() API Conformance Test
*/
/*
* COPYRIGHT (c) 2018.
* Jacob Shin
*
* Permission to use, copy, modify, and/or distribute this software
* for any purpose with or without fee is hereby granted.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
* BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <sys/stat.h>
int test( void );
int test( void )
{
int return_value;
char *path = "/tmp/directory";
mode_t mode = S_IRWXU;
return_value = mkdir(path, mode);
return (return_value != -1);
}
@@ -0,0 +1,39 @@
/**
* @file
* @brief mkdirat() API Conformance Test
*/
/*
* COPYRIGHT (c) 2018.
* Jacob Shin
*
* Permission to use, copy, modify, and/or distribute this software
* for any purpose with or without fee is hereby granted.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
* BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <sys/stat.h>
int test( void );
int test( void )
{
int return_value;
int fd = 1;
char *path = "/tmp/directory";
mode_t mode = S_IRWXU;
return_value = mkdirat(fd, path, mode);
return (return_value != -1);
}
@@ -0,0 +1,38 @@
/**
* @file
* @brief mkfifo() API Conformance Test
*/
/*
* COPYRIGHT (c) 2018.
* Jacob Shin
*
* Permission to use, copy, modify, and/or distribute this software
* for any purpose with or without fee is hereby granted.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
* BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <sys/stat.h>
int test( void );
int test( void )
{
int return_value;
char *path = "/tmp/file";
mode_t mode = S_IRUSR;
return_value = mkfifo(path, mode);
return (return_value != -1);
}
@@ -0,0 +1,39 @@
/**
* @file
* @brief mkfifoat() API Conformance Test
*/
/*
* COPYRIGHT (c) 2018.
* Jacob Shin
*
* Permission to use, copy, modify, and/or distribute this software
* for any purpose with or without fee is hereby granted.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
* BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <sys/stat.h>
int test( void );
int test( void )
{
int return_value;
int fd = 1;
char *path = "/tmp/file";
mode_t mode = S_IRUSR;
return_value = mkfifoat(fd, path, mode);
return (return_value != -1);
}
@@ -0,0 +1,39 @@
/**
* @file
* @brief mknod() API Conformance Test
*/
/*
* COPYRIGHT (c) 2018.
* Jacob Shin
*
* Permission to use, copy, modify, and/or distribute this software
* for any purpose with or without fee is hereby granted.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
* BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <sys/stat.h>
int test( void );
int test( void )
{
int return_value;
char *path = "/tmp/file";
mode_t mode = S_ISUID;
dev_t dev = 0;
return_value = mknod(path, mode, dev);
return (return_value != -1);
}
@@ -0,0 +1,40 @@
/**
* @file
* @brief mknodat() API Conformance Test
*/
/*
* COPYRIGHT (c) 2018.
* Jacob Shin
*
* Permission to use, copy, modify, and/or distribute this software
* for any purpose with or without fee is hereby granted.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
* BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <sys/stat.h>
int test( void );
int test( void )
{
int return_value;
int fd = 1;
char *path = "/tmp/file";
mode_t mode = S_ISUID;
dev_t dev = 0;
return_value = mknodat(fd, path, mode, dev);
return (return_value != -1);
}
@@ -0,0 +1,38 @@
/**
* @file
* @brief stat() API Conformance Test
*/
/*
* COPYRIGHT (c) 2018.
* Jacob Shin
*
* Permission to use, copy, modify, and/or distribute this software
* for any purpose with or without fee is hereby granted.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
* BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <sys/stat.h>
int test( void );
int test( void )
{
int return_value;
char *path = "/";
struct stat buf;
return_value = stat(path, &buf);
return (return_value != -1);
}
@@ -0,0 +1,37 @@
/**
* @file
* @brief umask() API Conformance Test
*/
/*
* COPYRIGHT (c) 2018.
* Jacob Shin
*
* Permission to use, copy, modify, and/or distribute this software
* for any purpose with or without fee is hereby granted.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
* BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <sys/stat.h>
int test( void );
int test( void )
{
mode_t return_value;
mode_t cmask = S_IRWXG;
return_value = umask(cmask);
return return_value;
}
@@ -0,0 +1,41 @@
/**
* @file
* @brief utimensat() API Conformance Test
*/
/*
* COPYRIGHT (c) 2018.
* Jacob Shin
*
* Permission to use, copy, modify, and/or distribute this software
* for any purpose with or without fee is hereby granted.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
* BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <sys/stat.h>
#include <fcntl.h>
int test( void );
int test( void )
{
int return_value;
int fd = 1;
char *path = "/";
struct timespec times[2];
int flag = AT_SYMLINK_NOFOLLOW;
return_value = utimensat(fd, path, times, flag);
return (return_value != -1);
}