YugabyteDB (2.13.0.0-b42, bfc6a6643e7399ac8a0e81d06a3ee6d6571b33ab)

Coverage Report

Created: 2022-03-09 17:30

/Users/deen/code/yugabyte-db/src/yb/util/tsan_util.h
Line
Count
Source (jump to first uncovered line)
1
// Copyright (c) YugaByte, Inc.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
4
// in compliance with the License.  You may obtain a copy of the License at
5
//
6
// http://www.apache.org/licenses/LICENSE-2.0
7
//
8
// Unless required by applicable law or agreed to in writing, software distributed under the License
9
// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
10
// or implied.  See the License for the specific language governing permissions and limitations
11
// under the License.
12
//
13
14
#ifndef YB_UTIL_TSAN_UTIL_H
15
#define YB_UTIL_TSAN_UTIL_H
16
17
namespace yb {
18
19
template <class T>
20
267
constexpr T NonTsanVsTsan(T value_not_in_tsan, T value_in_tsan) {
21
#if THREAD_SANITIZER
22
  return value_in_tsan;
23
#else
24
267
  return value_not_in_tsan;
25
267
#endif
26
267
}
Unexecuted instantiation: _ZN2yb13NonTsanVsTsanIyEET_S1_S1_
_ZN2yb13NonTsanVsTsanIiEET_S1_S1_
Line
Count
Source
20
35
constexpr T NonTsanVsTsan(T value_not_in_tsan, T value_in_tsan) {
21
#if THREAD_SANITIZER
22
  return value_in_tsan;
23
#else
24
35
  return value_not_in_tsan;
25
35
#endif
26
35
}
Unexecuted instantiation: _ZN2yb13NonTsanVsTsanINSt3__16chrono8durationIxNS1_5ratioILl1ELl1EEEEEEET_S7_S7_
_ZN2yb13NonTsanVsTsanIbEET_S1_S1_
Line
Count
Source
20
232
constexpr T NonTsanVsTsan(T value_not_in_tsan, T value_in_tsan) {
21
#if THREAD_SANITIZER
22
  return value_in_tsan;
23
#else
24
232
  return value_not_in_tsan;
25
232
#endif
26
232
}
Unexecuted instantiation: _ZN2yb13NonTsanVsTsanIPKcEET_S3_S3_
Unexecuted instantiation: _ZN2yb13NonTsanVsTsanImEET_S1_S1_
27
28
231
constexpr bool IsTsan() {
29
231
  return NonTsanVsTsan(false, true);
30
231
}
31
32
template <class T>
33
5.03k
constexpr T RegularBuildVsSanitizers(T regular_build_value, T sanitizer_value) {
34
#if defined(THREAD_SANITIZER) || defined(ADDRESS_SANITIZER)
35
  return sanitizer_value;
36
#else
37
5.03k
  return regular_build_value;
38
5.03k
#endif
39
5.03k
}
_ZN2yb24RegularBuildVsSanitizersIiEET_S1_S1_
Line
Count
Source
33
5.01k
constexpr T RegularBuildVsSanitizers(T regular_build_value, T sanitizer_value) {
34
#if defined(THREAD_SANITIZER) || defined(ADDRESS_SANITIZER)
35
  return sanitizer_value;
36
#else
37
5.01k
  return regular_build_value;
38
5.01k
#endif
39
5.01k
}
Unexecuted instantiation: _ZN2yb24RegularBuildVsSanitizersImEET_S1_S1_
_ZN2yb24RegularBuildVsSanitizersIbEET_S1_S1_
Line
Count
Source
33
1
constexpr T RegularBuildVsSanitizers(T regular_build_value, T sanitizer_value) {
34
#if defined(THREAD_SANITIZER) || defined(ADDRESS_SANITIZER)
35
  return sanitizer_value;
36
#else
37
1
  return regular_build_value;
38
1
#endif
39
1
}
_ZN2yb24RegularBuildVsSanitizersINSt3__16chrono8durationIxNS1_5ratioILl1ELl1EEEEEEET_S7_S7_
Line
Count
Source
33
15
constexpr T RegularBuildVsSanitizers(T regular_build_value, T sanitizer_value) {
34
#if defined(THREAD_SANITIZER) || defined(ADDRESS_SANITIZER)
35
  return sanitizer_value;
36
#else
37
15
  return regular_build_value;
38
15
#endif
39
15
}
Unexecuted instantiation: _ZN2yb24RegularBuildVsSanitizersIjEET_S1_S1_
Unexecuted instantiation: _ZN2yb24RegularBuildVsSanitizersINSt3__16chrono8durationIxNS1_5ratioILl1ELl1000EEEEEEET_S7_S7_
40
41
template <class T>
42
constexpr T RegularBuildVsDebugVsSanitizers(
43
0
    T regular_build_value, T debug_build_value, T sanitizer_value) {
44
0
#if defined(THREAD_SANITIZER) || defined(ADDRESS_SANITIZER)
45
0
  return sanitizer_value;
46
0
#elif defined(NDEBUG)
47
0
  return regular_build_value;
48
0
#else
49
0
  return debug_build_value;
50
0
#endif
51
0
}
52
53
0
constexpr bool IsSanitizer() {
54
0
  return RegularBuildVsSanitizers(false, true);
55
0
}
56
57
const int kTimeMultiplier = RegularBuildVsSanitizers(1, 3);
58
59
}  // namespace yb
60
61
#endif  // YB_UTIL_TSAN_UTIL_H