[LLVMdev] [PATCH] Test failures
Kostya Serebryany
kcc at google.com
Wed Mar 25 16:25:40 PDT 2015
Isn't this fixed in r232972?
On Wed, Mar 25, 2015 at 3:24 AM, Hannes Weisbach <
hannes.weisbach at mailbox.tu-dresden.de> wrote:
> Hi all,
>
> I experienced some test failures under Linux, probably caused by r232936:
>
> In the test SanitizerCommon-Unit ::
> Sanitizer-i386-Test/MemoryMappingLayout.CodeRange the temporary test
> file was opened write-only, but was read from, what subsequently
> failed:
>
> Note: Google Test filter = MemoryMappingLayout.CodeRange
> [==========] Running 1 test from 1 test case.
> [----------] Global test environment set-up.
> [----------] 1 test from MemoryMappingLayout
> [ RUN ] MemoryMappingLayout.CodeRange
> /home/weisbach/llvm/projects/compiler-rt/lib/sanitizer_common/tests/sanitizer_procmaps_test.cc:29:
> Failure
> Value of: true
> Expected: res
> Which is: false
> [ FAILED ] MemoryMappingLayout.CodeRange (1 ms)
> [----------] 1 test from MemoryMappingLayout (1 ms total)
>
> Thus, the file should be opened read-write.
>
> In the test SanitizerCommon-Unit ::
> Sanitizer-i386-Test/SanitizerCommon.InternalMmapWithOffset the
> temporary test file was opened write-only, only to be later mmap()ed
> with MAP_SHARED, resulting in a EACCES return value:
>
> ********************
> FAIL: SanitizerCommon-Unit ::
> Sanitizer-i386-Test/SanitizerCommon.InternalMmapWithOffset (10034 of 10784)
> ******************** TEST 'SanitizerCommon-Unit ::
> Sanitizer-i386-Test/SanitizerCommon.InternalMmapWithOffset' FAILED
> ********************
> Note: Google Test filter = SanitizerCommon.InternalMmapWithOffset
> [==========] Running 1 test from 1 test case.
> [----------] Global test environment set-up.
> [----------] 1 test from SanitizerCommon
> [ RUN ] SanitizerCommon.InternalMmapWithOffset
> /home/weisbach/llvm/projects/compiler-rt/lib/sanitizer_common/tests/sanitizer_libc_test.cc:152:
> Failure
> Expected: (nullptr) != (p), actual: 4-byte object <00-00 00-00> vs NULL
> [ FAILED ] SanitizerCommon.InternalMmapWithOffset (0 ms)
> [----------] 1 test from SanitizerCommon (1 ms total)
>
> [----------] Global test environment tear-down
> [==========] 1 test from 1 test case ran. (1 ms total)
> [ PASSED ] 0 tests.
> [ FAILED ] 1 test, listed below:
> [ FAILED ] SanitizerCommon.InternalMmapWithOffset
>
> 1 FAILED TEST
> could not map writable file (3, 4096, 4096): -1, errno: 13
>
> 13 is EACCES and the mmap() man page says:
>
> EACCES A file descriptor refers to a non-regular file. Or MAP_PRIVATE
> was requested, but fd is not open for reading. Or MAP_SHARED was
> requested and PROT_WRITE is set, but fd is not open in read/write
> (O_RDWR) mode. Or PROT_WRITE is set, but the file is append-only.
>
> As it turns out PROT_WRITE is set indeed, and the file is not open in
> read-write mode, thus this test file also needs to be opened in
> read-write.
>
> A patch is attached.
>
> --
> Best regards,
> Hannes
>
> diff --git a/lib/sanitizer_common/tests/sanitizer_libc_test.cc
> b/lib/sanitizer_common/tests/sanitizer_libc_test.cc
> index 689c6ed..a304458 100644
> --- a/lib/sanitizer_common/tests/sanitizer_libc_test.cc
> +++ b/lib/sanitizer_common/tests/sanitizer_libc_test.cc
> @@ -85,7 +85,7 @@ TEST(SanitizerCommon, FileOps) {
> EXPECT_EQ(len2, internal_write(fd, str2, len2));
> internal_close(fd);
>
> - openrv = OpenFile(tmpfile, WrOnly);
> + openrv = OpenFile(tmpfile, RdWr);
> EXPECT_FALSE(internal_iserror(openrv));
> fd = openrv;
> uptr fsize = internal_filesize(fd);
> @@ -134,7 +134,7 @@ TEST(SanitizerCommon, InternalMmapWithOffset) {
> char tmpfile[128];
> temp_file_name(tmpfile, sizeof(tmpfile),
> "sanitizer_common.internalmmapwithoffset.tmp.");
> - uptr res = OpenFile(tmpfile, WrOnly);
> + uptr res = OpenFile(tmpfile, RdWr);
> ASSERT_FALSE(internal_iserror(res));
> fd_t fd = res;
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150325/1411d042/attachment.html>
More information about the llvm-dev
mailing list