/**
 * @file config.h
 * @author Radek Krejci <rkrejci@cesnet.cz>
 * @brief cmocka tests configuration header.
 *
 * Copyright (c) 2015 - 2098 CESNET, z.s.p.o.
 *
 * This source code is licensed under BSD 3-Clause License (the "License").
 * You may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://opensource.org/licenses/BSD-3-Clause
 */
#ifndef LYTEST_CONFIG_H_
#define LYTEST_CONFIG_H_

#define UNUSED(x) @COMPILER_UNUSED_ATTR@

#define TESTS_SRC "@CMAKE_CURRENT_SOURCE_DIR@"
#define TESTS_BIN "@CMAKE_CURRENT_BINARY_DIR@"

#define TESTS_DIR_MODULES_YANG TESTS_SRC"/modules/yang"

#endif /* LYTEST_CONFIG_H_ */
