diff options
author | Viktor Kutuzov <vkutuzov@accesssoftek.com> | 2015-01-12 20:15:33 +0000 |
---|---|---|
committer | Viktor Kutuzov <vkutuzov@accesssoftek.com> | 2015-01-12 20:15:33 +0000 |
commit | e8a06d3b4da9c70a84cb38bd2118345f54391e77 (patch) | |
tree | f81e68f606f9b287f93b389f9b62c0e0d3d2bf69 | |
parent | eadeea306bdb4a8a6da44ea778bf0684cdd2d43e (diff) | |
download | compiler-rt-e8a06d3b4da9c70a84cb38bd2118345f54391e77.tar.gz |
[Msan] Fix tests reading /proc files on FreeBSD
Differential Revision: http://reviews.llvm.org/D6926
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@225686 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/msan/tests/msan_test.cc | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/lib/msan/tests/msan_test.cc b/lib/msan/tests/msan_test.cc index 834448075..1a2adbc38 100644 --- a/lib/msan/tests/msan_test.cc +++ b/lib/msan/tests/msan_test.cc @@ -73,6 +73,13 @@ # include <immintrin.h> #endif +// On FreeBSD procfs is not enabled by default. +#if defined(__FreeBSD__) +# define FILE_TO_READ "/bin/cat" +#else +# define FILE_TO_READ "/proc/self/stat" +#endif + static const size_t kPageSize = 4096; typedef unsigned char U1; @@ -564,7 +571,7 @@ TEST(MemorySanitizer, strerror_r) { TEST(MemorySanitizer, fread) { char *x = new char[32]; - FILE *f = fopen("/proc/self/stat", "r"); + FILE *f = fopen(FILE_TO_READ, "r"); ASSERT_TRUE(f != NULL); fread(x, 1, 32, f); EXPECT_NOT_POISONED(x[0]); @@ -576,7 +583,7 @@ TEST(MemorySanitizer, fread) { TEST(MemorySanitizer, read) { char *x = new char[32]; - int fd = open("/proc/self/stat", O_RDONLY); + int fd = open(FILE_TO_READ, O_RDONLY); ASSERT_GT(fd, 0); int sz = read(fd, x, 32); ASSERT_EQ(sz, 32); @@ -589,7 +596,7 @@ TEST(MemorySanitizer, read) { TEST(MemorySanitizer, pread) { char *x = new char[32]; - int fd = open("/proc/self/stat", O_RDONLY); + int fd = open(FILE_TO_READ, O_RDONLY); ASSERT_GT(fd, 0); int sz = pread(fd, x, 32, 0); ASSERT_EQ(sz, 32); @@ -607,7 +614,7 @@ TEST(MemorySanitizer, readv) { iov[0].iov_len = 5; iov[1].iov_base = buf + 10; iov[1].iov_len = 2000; - int fd = open("/proc/self/stat", O_RDONLY); + int fd = open(FILE_TO_READ, O_RDONLY); ASSERT_GT(fd, 0); int sz = readv(fd, iov, 2); ASSERT_GE(sz, 0); @@ -631,7 +638,7 @@ TEST(MemorySanitizer, preadv) { iov[0].iov_len = 5; iov[1].iov_base = buf + 10; iov[1].iov_len = 2000; - int fd = open("/proc/self/stat", O_RDONLY); + int fd = open(FILE_TO_READ, O_RDONLY); ASSERT_GT(fd, 0); int sz = preadv(fd, iov, 2, 3); ASSERT_GE(sz, 0); @@ -662,10 +669,9 @@ TEST(MemorySanitizer, readlink) { delete [] x; } - TEST(MemorySanitizer, stat) { struct stat* st = new struct stat; - int res = stat("/proc/self/stat", st); + int res = stat(FILE_TO_READ, st); ASSERT_EQ(0, res); EXPECT_NOT_POISONED(st->st_dev); EXPECT_NOT_POISONED(st->st_mode); |