Skip to content

Commit fd000de

Browse files
committed
Enable drd and helgrind in the Nightly CI job
Signed-off-by: Lukasz Dorau <[email protected]>
1 parent 0886bdf commit fd000de

8 files changed

+102
-5
lines changed

.github/workflows/nightly.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
strategy:
1313
fail-fast: false
1414
matrix:
15-
tool: ['memcheck'] # TODO: enable 'drd' and 'helgrind' when all issues are fixed
15+
tool: ['memcheck', 'drd', 'helgrind']
1616
runs-on: ubuntu-latest
1717

1818
steps:
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
Conflicting Access in libjemalloc.so*
3+
drd:ConflictingAccess
4+
obj:/usr/lib/x86_64-linux-gnu/libjemalloc.so*
5+
...
6+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
Conflicting Access in libtbbmalloc.so*
3+
drd:ConflictingAccess
4+
obj:*libtbbmalloc.so*
5+
...
6+
}
7+
8+
{
9+
Conflicting Access in memset in pow2AlignedAllocHelper
10+
drd:ConflictingAccess
11+
fun:memset
12+
fun:*pow2AlignedAllocHelper*
13+
...
14+
}
15+
16+
{
17+
ConflictingAccess in tbb_realloc in multiThreadedReallocFree test
18+
drd:ConflictingAccess
19+
fun:memmove
20+
obj:*libtbbmalloc.so*
21+
fun:tbb_realloc
22+
fun:umfPoolRealloc
23+
fun:*umfPoolTest_multiThreadedReallocFree*
24+
...
25+
}
26+
27+
{
28+
ConflictingAccess in memset in multiThreadedCallocFree test
29+
drd:ConflictingAccess
30+
fun:memset
31+
fun:tbb_calloc
32+
fun:umfPoolCalloc
33+
fun:*umfPoolTest_multiThreadedCallocFree*
34+
...
35+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
pthread_mutex_lock with a pthread_rwlock_t* argument
3+
Helgrind:Misc
4+
obj:*vgpreload_helgrind-amd64-linux.so
5+
fun:*gthread_mutex_lock*pthread_mutex_t
6+
...
7+
}
8+
9+
{
10+
pthread_mutex_unlock with a pthread_rwlock_t* argument
11+
Helgrind:Misc
12+
obj:*vgpreload_helgrind-amd64-linux.so
13+
fun:*gthread_mutex_unlock*pthread_mutex_t
14+
...
15+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
Race in libjemalloc.so*
3+
Helgrind:Race
4+
obj:/usr/lib/x86_64-linux-gnu/libjemalloc.so*
5+
...
6+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
Race in libtbbmalloc.so*
3+
Helgrind:Race
4+
obj:/usr/lib/x86_64-linux-gnu/libtbbmalloc.so*
5+
...
6+
}
7+
8+
{
9+
Race Access in memset in pow2AlignedAllocHelper
10+
Helgrind:Race
11+
fun:memset
12+
fun:*pow2AlignedAllocHelper*
13+
...
14+
}
15+
16+
{
17+
Race in tbb_realloc in multiThreadedReallocFree test
18+
Helgrind:Race
19+
fun:memmove
20+
obj:*libtbbmalloc.so*
21+
fun:tbb_realloc
22+
fun:umfPoolRealloc
23+
fun:*umfPoolTest_multiThreadedReallocFree*
24+
...
25+
}
26+
27+
{
28+
Race in memset in multiThreadedCallocFree test
29+
Helgrind:Race
30+
fun:memset
31+
fun:tbb_calloc
32+
fun:umfPoolCalloc
33+
fun:*umfPoolTest_multiThreadedCallocFree*
34+
...
35+
}

test/test_valgrind.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,15 +71,15 @@ echo "Running: \"valgrind $OPTION\" for the following tests:"
7171
FAIL=0
7272
rm -f umf_test-*.log umf_test-*.err
7373

74-
for test in $(ls -1 ./umf_test-*); do
74+
for test in $(ls -1 umf_test-*); do
7575
[ ! -x $test ] && continue
7676
echo -n "$test "
7777
LOG=${test}.log
7878
ERR=${test}.err
79-
SUP="${WORKSPACE}/test/supp/${test}.supp"
79+
SUP="${WORKSPACE}/test/supp/${TOOL}-${test}.supp"
8080
OPT_SUP=""
81-
[ -f ${SUP} ] && OPT_SUP="--suppressions=${SUP}"
82-
HWLOC_CPUID_PATH=./cpuid valgrind $OPTION $OPT_SUP --gen-suppressions=all $test >$LOG 2>&1 || echo -n "(valgrind failed) "
81+
[ -f ${SUP} ] && OPT_SUP="--suppressions=${SUP}" && echo -n "(${TOOL}-${test}.supp) "
82+
HWLOC_CPUID_PATH=./cpuid valgrind $OPTION $OPT_SUP --gen-suppressions=all ./$test >$LOG 2>&1 || echo -n "(valgrind failed) "
8383
# grep for "ERROR SUMMARY" with errors (there can be many lines with "ERROR SUMMARY")
8484
grep -e "ERROR SUMMARY:" $LOG | grep -v -e "ERROR SUMMARY: 0 errors from 0 contexts" > $ERR || true
8585
if [ $(cat $ERR | wc -l) -eq 0 ]; then

0 commit comments

Comments
 (0)