| // Part of the Crubit project, under the Apache License v2.0 with LLVM | |
| // Exceptions. See /LICENSE for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| #include <type_traits> | |
| #include "gtest/gtest.h" | |
| #include "common/test/bidirectional_deps/leaf_cc_lib.h" | |
| #include "common/test/bidirectional_deps/middle_rs_lib.h" | |
| namespace crubit { | |
| namespace { | |
| TEST(BidirectionalDepsTest, RoundTrip) { | |
| LeafCcType value_from_cc = Wrap(4); | |
| ASSERT_EQ(middle_rs_lib::unwrap(value_from_cc), 4); | |
| LeafCcType value_from_rs = middle_rs_lib::wrap(2); | |
| ASSERT_EQ(Unwrap(value_from_rs), 2); | |
| } | |
| TEST(BidirectionalDepsTest, EnumRoundTrip) { | |
| LeafCcEnum value_from_cc = WrapEnum(2); | |
| ASSERT_EQ(middle_rs_lib::unwrap_enum(value_from_cc), 2); | |
| LeafCcEnum value_from_rs = middle_rs_lib::wrap_enum(1); | |
| ASSERT_EQ(UnwrapEnum(value_from_rs), 1); | |
| } | |
| TEST(BidirectionalDepsTest, TypeAliasRoundTrip) { | |
| bool res = std::is_same_v<LeafCcTypeAlias, middle_rs_lib::LeafCcTypeAlias2>; | |
| ASSERT_TRUE(res); | |
| res = std::is_same_v<LeafCcTypeAlias, middle_rs_lib::LeafCcTypeAlias3>; | |
| ASSERT_TRUE(res); | |
| }; | |
| } // namespace | |
| } // namespace crubit |