libcryfs/test/fspp/fuse/utimens/testutils/FuseUtimensTest.cpp

33 lines
941 B
C++
Raw Normal View History

2014-11-28 18:38:24 +01:00
#include "FuseUtimensTest.h"
#include <utime.h>
#include <sys/time.h>
2016-02-09 09:36:07 +01:00
void FuseUtimensTest::Utimens(const char *filename, timespec lastAccessTime, timespec lastModificationTime) {
int error = UtimensReturnError(filename, lastAccessTime, lastModificationTime);
EXPECT_EQ(0, error);
2014-11-28 18:38:24 +01:00
}
2016-02-09 09:36:07 +01:00
int FuseUtimensTest::UtimensReturnError(const char *filename, timespec lastAccessTime, timespec lastModificationTime) {
2014-11-28 18:38:24 +01:00
auto fs = TestFS();
auto realpath = fs->mountDir() / filename;
struct timeval casted_times[2];
2016-02-09 09:36:07 +01:00
TIMESPEC_TO_TIMEVAL(&casted_times[0], &lastAccessTime);
TIMESPEC_TO_TIMEVAL(&casted_times[1], &lastModificationTime);
int retval = ::utimes(realpath.c_str(), casted_times);
if (0 == retval) {
return 0;
} else {
return errno;
}
2014-11-28 18:38:24 +01:00
}
struct timespec FuseUtimensTest::makeTimespec(time_t tv_sec, long tv_nsec) {
struct timespec result{};
2014-11-28 18:38:24 +01:00
result.tv_sec = tv_sec;
result.tv_nsec = tv_nsec;
return result;
}