llvm-project/compiler-rt/lib/dfsan
Dimitry Andric 66749021d4 Make check_custom_wrappers.sh work on FreeBSD
Summary:
When running the compiler-rt testsuite on FreeBSD (it didn't matter which version), I always got the same error result:

    FAILED: cd /home/dim/obj/llvm-234092-trunk-freebsd10-amd64-ninja-rel-1/projects/compiler-rt/lib && LLVM_CHECKOUT=/home/dim/src/llvm/trunk SILENT=1 TMPDIR= PYTHON_EXECUTABLE=/usr/local/bin/python2.7 COMPILER_RT=/home/dim/src/llvm/trunk/projects/compiler-rt /home/dim/src/llvm/trunk/projects/compiler-rt/lib/sanitizer_common/scripts/check_lint.sh
    The following differences between the implemented custom wrappers and the tests have been found:
    --- /tmp/tmp.vPFEefvclf 2015-04-04 17:11:44.996734563 +0200
    +++ /tmp/tmp.NbIuvjxKEe 2015-04-04 17:11:45.044734647 +0200
    @@ -1,52 +0,0 @@
    -calloc
    -clock_gettime
    -ctime_r
    -dfsan_set_write_callback
    -dl_iterate_phdr
    -dlopen
    -fgets
    -fstat
    -get_current_dir_name
    -getcwd
    -gethostname
    -getpwuid_r
    -getrlimit
    -getrusage
    -gettimeofday
    -inet_pton
    -localtime_r
    -memchr
    -memcmp
    -memcpy
    -memset
    -nanosleep
    -poll
    -pread
    -pthread_create
    -read
    -sched_getaffinity
    -select
    -sigaction
    -sigemptyset
    -snprintf
    -socketpair
    -sprintf
    -stat
    -strcasecmp
    -strchr
    -strcmp
    -strcpy
    -strdup
    -strlen
    -strncasecmp
    -strncmp
    -strncpy
    -strrchr
    -strstr
    -strtod
    -strtol
    -strtoll
    -strtoul
    -strtoull
    -time
    -write

After some investigation, it turns out to be due to the regex used for search test_ symbols in lib/dfsan/scripts/check_customer_wrappers.sh:

    grep -E "^\\s*test_.*\(\);" ${DFSAN_CUSTOM_TESTS}

This uses \s to search for whitespace at start of line, but support for \s was only introduced in GNU grep v2.5.4-112-gf979ca0, while both FreeBSD and OSX only have grep 2.5.1 (the last version released under GPLv2).

I propose to change \s into [[:space:]], which is the more portable notation.

Test Plan: Run regression tests, and see that they work now. :)

Reviewers: pcc, samsonov, emaste

Reviewed By: emaste

Subscribers: llvm-commits, emaste

Differential Revision: http://reviews.llvm.org/D8832

llvm-svn: 234704
2015-04-12 10:54:46 +00:00
..
scripts Make check_custom_wrappers.sh work on FreeBSD 2015-04-12 10:54:46 +00:00
CMakeLists.txt [dfsan] Use append_no_rtti_flag instead of manually specifying -fno-rtti. 2015-01-19 08:26:38 +00:00
dfsan.cc Split Mprotect into MmapNoAccess and MprotectNoAccess to be more portable 2015-04-10 15:02:19 +00:00
dfsan.h Revert r234477, "Differential Revision: http://reviews.llvm.org/D7249" 2015-04-09 22:42:01 +00:00
dfsan.syms.extra [dfsan] Add a syms file. 2013-08-29 22:49:00 +00:00
dfsan_custom.cc Extend s{,n}printf custom wrappers to support '*' in the format specifiers 2015-04-10 20:58:28 +00:00
dfsan_flags.inc [Sanitizer] Change the runtime flag representation. 2015-01-07 00:38:00 +00:00
dfsan_interceptors.cc [DFSan] Don't include public headers in dfsan runtime code 2013-11-17 09:41:47 +00:00
done_abilist.txt [dfsan] Add libgo functions to ABI list. 2014-11-05 17:21:08 +00:00
libc_ubuntu1404_abilist.txt [dfsan] Upgrade ABI list to Ubuntu 14.04. 2014-11-05 17:21:06 +00:00