File: macro.cpp

package info (click to toggle)
boost-ext-ut 2.3.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 620 kB
  • sloc: cpp: 6,773; makefile: 13; sh: 10
file content (42 lines) | stat: -rw-r--r-- 1,084 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//
// Copyright (c) 2019-2020 Kris Jusiak (kris at jusiak dot net)
//
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
//
#include <boost/ut.hpp>
#include <vector>

#define EXPECT(...)            \
  using namespace ::boost::ut; \
  ::boost::ut::expect(::boost::ut::that % __VA_ARGS__)
#define SUITE ::boost::ut::suite _ = []
#define TEST(name) ::boost::ut::detail::test{"test", name} = [=]() mutable
#define TEST_P(name, ...)                 \
  using namespace ::boost::ut::operators; \
  ::boost::ut::detail::test{"test", name} = [=](__VA_ARGS__) mutable

SUITE {
  TEST("suite") { EXPECT(42 == 42); };

  TEST_P("parameterized", const auto& arg) {
    EXPECT(arg > 0) << "all values greater than 0";
  }
  | std::vector{1, 2, 3};
};

int main() {
  TEST("macro") { EXPECT(1 != 2); };

  TEST("vector") {
    std::vector<int> v(5);

    EXPECT((5u == std::size(v)) >> fatal);

    TEST("resize bigger") {
      v.resize(10);
      EXPECT(10u == std::size(v));
    };
  };
}