Files
clang-p2996/libc/utils/UnitTest/ScanfMatcher.h
Michael Jones 7a129f0756 [libc] add scanf parser and core utilities
This is the first piece of scanf. It's very similar in design to printf,
and so much of the code is copied from that. There were potential issues
with conflicting macros so I've also renamed the "ASSERT_FORMAT_EQ"
macro for printf to "ASSERT_PFORMAT_EQ".

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D136288
2022-10-28 10:52:51 -07:00

47 lines
1.5 KiB
C++

//===-- ScanfMatcher.h ------------------------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_LIBC_UTILS_UNITTEST_SCANF_MATCHER_H
#define LLVM_LIBC_UTILS_UNITTEST_SCANF_MATCHER_H
#include "src/stdio/scanf_core/core_structs.h"
#include "utils/UnitTest/Test.h"
#include <errno.h>
namespace __llvm_libc {
namespace scanf_core {
namespace testing {
class FormatSectionMatcher
: public __llvm_libc::testing::Matcher<FormatSection> {
FormatSection expected;
FormatSection actual;
public:
FormatSectionMatcher(FormatSection expectedValue) : expected(expectedValue) {}
bool match(FormatSection actualValue);
void explainError(testutils::StreamWrapper &stream) override;
};
} // namespace testing
} // namespace scanf_core
} // namespace __llvm_libc
#define EXPECT_SFORMAT_EQ(expected, actual) \
EXPECT_THAT(actual, __llvm_libc::scanf_core::testing::FormatSectionMatcher( \
expected))
#define ASSERT_SFORMAT_EQ(expected, actual) \
ASSERT_THAT(actual, __llvm_libc::scanf_core::testing::FormatSectionMatcher( \
expected))
#endif // LLVM_LIBC_UTILS_UNITTEST_SCANF_MATCHER_H