blob: 52fbb0a17957c6b7892ad52a1bc7ccfc6d62305e [file] [log] [blame]
// Copyright 2019 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.
#include "src/developer/debug/zxdb/expr/builtin_types.h"
#include <gtest/gtest.h>
namespace zxdb {
TEST(BuiltinTypes, C) {
auto found_long = GetBuiltinType(ExprLanguage::kC, "long");
ASSERT_TRUE(found_long);
EXPECT_EQ("long", found_long->GetFullName());
EXPECT_EQ(BaseType::kBaseTypeSigned, found_long->base_type());
EXPECT_EQ(8u, found_long->byte_size());
auto found_double = GetBuiltinType(ExprLanguage::kC, "double");
ASSERT_TRUE(found_double);
EXPECT_EQ("double", found_double->GetFullName());
EXPECT_EQ(BaseType::kBaseTypeFloat, found_double->base_type());
EXPECT_EQ(8u, found_double->byte_size());
auto unfound = GetBuiltinType(ExprLanguage::kC, "unfound");
EXPECT_FALSE(unfound);
EXPECT_EQ("uint16_t", GetBuiltinUnsignedType(ExprLanguage::kC, 2)->GetFullName());
EXPECT_EQ("nonstandard_unsigned", GetBuiltinUnsignedType(ExprLanguage::kC, 7)->GetFullName());
EXPECT_EQ("double", GetBuiltinFloatType(ExprLanguage::kC, 8)->GetFullName());
EXPECT_EQ("nonstandard_float", GetBuiltinFloatType(ExprLanguage::kC, 7)->GetFullName());
}
TEST(BuiltinTypes, Rust) {
auto found_i64 = GetBuiltinType(ExprLanguage::kRust, "i64");
ASSERT_TRUE(found_i64);
EXPECT_EQ("i64", found_i64->GetFullName());
EXPECT_EQ(BaseType::kBaseTypeSigned, found_i64->base_type());
EXPECT_EQ(8u, found_i64->byte_size());
auto found_f32 = GetBuiltinType(ExprLanguage::kRust, "f32");
ASSERT_TRUE(found_f32);
EXPECT_EQ("f32", found_f32->GetFullName());
EXPECT_EQ(BaseType::kBaseTypeFloat, found_f32->base_type());
EXPECT_EQ(4u, found_f32->byte_size());
EXPECT_EQ("u16", GetBuiltinUnsignedType(ExprLanguage::kRust, 2)->GetFullName());
EXPECT_EQ("nonstandard_unsigned", GetBuiltinUnsignedType(ExprLanguage::kRust, 7)->GetFullName());
EXPECT_EQ("f64", GetBuiltinFloatType(ExprLanguage::kRust, 8)->GetFullName());
EXPECT_EQ("nonstandard_float", GetBuiltinFloatType(ExprLanguage::kRust, 7)->GetFullName());
}
} // namespace zxdb