blob: b29481fd4735b8fb8eb5a41e789c1f70f21f9a36 [file] [log] [blame]
// Copyright 2017 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 ZIRCON_SYSTEM_UTEST_TRACE_FIXTURE_MACROS_H_
#define ZIRCON_SYSTEM_UTEST_TRACE_FIXTURE_MACROS_H_
#include <trace-test-utils/fixture.h>
#include <zxtest/zxtest.h>
#define DEFAULT_BUFFER_SIZE_BYTES (1024u * 1024u)
// This isn't a do-while because of the cleanup.
#define BEGIN_TRACE_TEST_ETC(attach_to_thread, mode, buffer_size) \
__attribute__((cleanup(fixture_scope_cleanup))) bool __scope = 0; \
(void)__scope; \
fixture_set_up((attach_to_thread), (mode), (buffer_size))
#define BEGIN_TRACE_TEST \
BEGIN_TRACE_TEST_ETC(kNoAttachToThread, TRACE_BUFFERING_MODE_ONESHOT, DEFAULT_BUFFER_SIZE_BYTES)
#define END_TRACE_TEST
#ifndef NTRACE
#ifdef __cplusplus
#define ASSERT_RECORDS(expected_c, expected_cpp) \
ASSERT_TRUE(fixture_compare_records(expected_c expected_cpp), "record mismatch")
#define ASSERT_N_RECORDS(max_num_recs, expected_c, expected_cpp, records, skip_count) \
ASSERT_TRUE( \
fixture_compare_n_records((max_num_recs), expected_c expected_cpp, (records), (skip_count)), \
"record mismatch")
#else
#define ASSERT_RECORDS(expected_c, expected_cpp) \
ASSERT_TRUE(fixture_compare_records(expected_c), "record mismatch")
#endif // __cplusplus
#else // NTRACE
#define ASSERT_RECORDS(expected_c, expected_cpp) \
ASSERT_TRUE(fixture_compare_records(""), "record mismatch")
#ifdef __cplusplus
#define ASSERT_N_RECORDS(max_num_recs, expected_c, expected_cpp, records, skip_count) \
ASSERT_TRUE(fixture_compare_records((max_num_recs), "", (records), (skip_count)), \
"record mismatch")
#endif
#endif // NTRACE
#endif // ZIRCON_SYSTEM_UTEST_TRACE_FIXTURE_MACROS_H_