YugabyteDB (2.13.1.0-b60, 21121d69985fbf76aa6958d8f04a9bfa936293b5)

Coverage Report

Created: 2022-03-22 16:43

/Users/deen/code/yugabyte-db/src/yb/util/status_format.h
Line
Count
Source (jump to first uncovered line)
1
//
2
// Copyright (c) YugaByte, Inc.
3
//
4
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5
// in compliance with the License.  You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software distributed under the License
10
// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11
// or implied.  See the License for the specific language governing permissions and limitations
12
// under the License.
13
//
14
//
15
16
#ifndef YB_UTIL_STATUS_FORMAT_H
17
#define YB_UTIL_STATUS_FORMAT_H
18
19
#include "yb/gutil/strings/substitute.h"
20
21
#include "yb/util/format.h"
22
#include "yb/util/status.h"
23
24
#define STATUS_SUBSTITUTE(status_type, ...) \
25
1.82M
    (Status(Status::BOOST_PP_CAT(k, status_type), \
26
1.82M
            __FILE__, \
27
1.82M
            __LINE__, \
28
1.82M
            strings::Substitute(
__VA_ARGS__0
)))
29
30
#define STATUS_FORMAT(status_type, ...) \
31
130M
    (::yb::Status(::yb::Status::BOOST_PP_CAT(k, status_type), \
32
130M
            __FILE__, \
33
130M
            __LINE__, \
34
130M
            ::yb::Format(
__VA_ARGS__5.82M
)))
35
36
#define STATUS_EC_FORMAT(status_type, error_code, ...) \
37
205k
    (::yb::Status(::yb::Status::BOOST_PP_CAT(k, status_type), \
38
205k
            __FILE__, \
39
205k
            __LINE__, \
40
205k
            ::yb::Format(
__VA_ARGS__52
), error_code))
41
42
2.79k
#define SCHECK_FORMAT(expr, status_type, msg, ...) do { \
43
2.79k
    if (PREDICT_FALSE(!(expr))) 
return 0
STATUS_FORMAT0
(status_type, (msg), __VA_ARGS__); \
44
2.79k
  } while (0)
45
46
#define SCHECK_OP(var1, op, var2, status_type, msg) \
47
7.09G
  do { \
48
7.09G
    auto v1_tmp = (
var15.74M
); \
49
1.91M
    auto v2_tmp = (
var2350
); \
50
7.09G
    if (PREDICT_FALSE(!((v1_tmp) op (v2_tmp)))) 
return 3
STATUS3
(status_type, \
51
1.91M
      yb::Format("$0: $1 vs. $2", (msg), v1_tmp, v2_tmp)); \
52
7.09G
  } while (0)
53
54
298M
#define SCHECK_EQ(var1, var2, status_type, msg) SCHECK_OP(var1, ==, var2, status_type, msg)
55
1.59M
#define SCHECK_NE(var1, var2, status_type, msg) SCHECK_OP(var1, !=, var2, status_type, msg)
56
141k
#define SCHECK_GT(var1, var2, status_type, msg) SCHECK_OP(var1, >, var2, status_type, msg)
57
2.37G
#define SCHECK_GE(var1, var2, status_type, msg) SCHECK_OP(var1, >=, var2, status_type, msg)
58
2.20G
#define SCHECK_LT(var1, var2, status_type, msg) SCHECK_OP(var1, <, var2, status_type, msg)
59
2.21G
#define SCHECK_LE(var1, var2, status_type, msg) SCHECK_OP(var1, <=, var2, status_type, msg)
60
#define SCHECK_BOUNDS(var1, lbound, rbound, status_type, msg) \
61
1.93M
    do { \
62
1.93M
      SCHECK_GE(var1, lbound, status_type, msg); \
63
1.93M
      SCHECK_LE(var1, rbound, status_type, msg); \
64
1.93M
    } while(false)
65
66
#ifndef NDEBUG
67
68
// Debug mode ("not defined NDEBUG (non-debug-mode)" means "debug mode").
69
// In case the check condition is false, we will crash with a CHECK failure.
70
71
33.2M
#define RSTATUS_DCHECK(expr, type, msg) DCHECK
(expr) << msg106k
72
9.67k
#define RSTATUS_DCHECK_EQ(var1, var2, type, msg) DCHECK_EQ
(var1, var2) << msg0
73
68.1k
#define RSTATUS_DCHECK_NE(var1, var2, type, msg) DCHECK_NE
(var1, var2) << msg0
74
#define RSTATUS_DCHECK_GT(var1, var2, type, msg) DCHECK_GT(var1, var2) << msg
75
52.9M
#define RSTATUS_DCHECK_GE(var1, var2, type, msg) DCHECK_GE
(var1, var2) << msg0
76
#define RSTATUS_DCHECK_LT(var1, var2, type, msg) DCHECK_LT(var1, var2) << msg
77
89
#define RSTATUS_DCHECK_LE(var1, var2, type, msg) DCHECK_LE
(var1, var2) << msg0
78
79
#else
80
81
// Release mode.
82
// In case the check condition is false, we will return an error status.
83
84
#define RSTATUS_DCHECK(expr, type, msg) SCHECK(expr, type, msg)
85
#define RSTATUS_DCHECK_EQ(var1, var2, type, msg) SCHECK_EQ(var1, var2, type, msg)
86
#define RSTATUS_DCHECK_NE(var1, var2, type, msg) SCHECK_NE(var1, var2, type, msg)
87
#define RSTATUS_DCHECK_GT(var1, var2, type, msg) SCHECK_GT(var1, var2, type, msg)
88
#define RSTATUS_DCHECK_GE(var1, var2, type, msg) SCHECK_GE(var1, var2, type, msg)
89
#define RSTATUS_DCHECK_LT(var1, var2, type, msg) SCHECK_LT(var1, var2, type, msg)
90
#define RSTATUS_DCHECK_LE(var1, var2, type, msg) SCHECK_LE(var1, var2, type, msg)
91
92
#endif
93
94
#endif // YB_UTIL_STATUS_FORMAT_H