1 //===-- Simple checkers for integrations tests ------------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef LLVM_LIBC_UTILS_INTEGRATION_TEST_TEST_H 10 #define LLVM_LIBC_UTILS_INTEGRATION_TEST_TEST_H 11 12 #include "src/__support/OSUtil/io.h" 13 #include "src/__support/OSUtil/quick_exit.h" 14 15 #define __AS_STRING(val) #val 16 #define __CHECK(file, line, val, should_exit) \ 17 if (!(val)) { \ 18 __llvm_libc::write_to_stderr(file ":" __AS_STRING( \ 19 line) ": Expected '" #val "' to be true, but is false\n"); \ 20 if (should_exit) \ 21 __llvm_libc::quick_exit(127); \ 22 } 23 24 #define __CHECK_NE(file, line, val, should_exit) \ 25 if ((val)) { \ 26 __llvm_libc::write_to_stderr(file ":" __AS_STRING( \ 27 line) ": Expected '" #val "' to be false, but is true\n"); \ 28 if (should_exit) \ 29 __llvm_libc::quick_exit(127); \ 30 } 31 32 #define EXPECT_TRUE(val) __CHECK(__FILE__, __LINE__, val, false) 33 #define ASSERT_TRUE(val) __CHECK(__FILE__, __LINE__, val, true) 34 #define EXPECT_FALSE(val) __CHECK_NE(__FILE__, __LINE__, val, false) 35 #define ASSERT_FALSE(val) __CHECK_NE(__FILE__, __LINE__, val, true) 36 37 #endif // LLVM_LIBC_UTILS_INTEGRATION_TEST_TEST_H 38