blob: 464b02afd042ca584cdc68f2dfbffa0bcb27703b [file] [log] [blame] [edit]
// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SRC_LIB_TESTING_PREDICATES_STATUS_H_
#define SRC_LIB_TESTING_PREDICATES_STATUS_H_
#include <zircon/status.h>
#include <gtest/gtest.h>
// Helper macro that asserts that `condition` equals `ZX_OK`.
// Behaves similarly to `ASSERT_EQ(condition, ZX_OK)` but with prettier output.
#define ASSERT_OK(condition) \
GTEST_PRED_FORMAT1_(::testing_predicates::CmpZxOk, condition, GTEST_FATAL_FAILURE_)
// Helper macro that expects that condition equals `ZX_OK`.
// Behaves similarly to `EXPECT_EQ(condition, ZX_OK)` but with prettier output.
#define EXPECT_OK(condition) \
GTEST_PRED_FORMAT1_(::testing_predicates::CmpZxOk, condition, GTEST_NONFATAL_FAILURE_)
// Helper macro that asserts equality between `zx_status_t` expressions `val1` and `val2`.
// Behaves similarly to `ASSERT_EQ(val1, val2)` but with prettier output.
#define ASSERT_STATUS(val1, val2) \
GTEST_PRED_FORMAT2_(::testing_predicates::CmpStatus, val1, val2, GTEST_FATAL_FAILURE_)
// Helper macro that expects equality between `zx_status_t` expressions `val1` and `val2`.
// Behaves similarly to `EXPECT_EQ(val1, val2)` but with prettier output.
#define EXPECT_STATUS(val1, val2) \
GTEST_PRED_FORMAT2_(::testing_predicates::CmpStatus, val1, val2, GTEST_NONFATAL_FAILURE_)
namespace testing_predicates {
::testing::AssertionResult CmpZxOk(const char* l_expr, zx_status_t l);
::testing::AssertionResult CmpStatus(const char* l_expr, const char* r_expr, zx_status_t l,
zx_status_t r);
} // namespace testing_predicates
#endif // SRC_LIB_TESTING_PREDICATES_STATUS_H_