[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