mirror of https://github.com/openXC7/prjxray.git
lib: xc7series: YAML conversion tests for ConfigurationFrameAddress
Signed-off-by: Rick Altherr <kc8apf@kc8apf.net> Signed-off-by: Tim 'mithro' Ansell <mithro@mithis.com>
This commit is contained in:
parent
7e2cdc0947
commit
6a2fb25013
|
|
@ -48,6 +48,13 @@ if (PRJXRAY_BUILD_TESTING)
|
|||
add_test(NAME xilinx_xc7series_block_type_test
|
||||
COMMAND xilinx_xc7series_block_type_test)
|
||||
|
||||
add_executable(xilinx_xc7series_configuration_frame_address_test
|
||||
xilinx/xc7series/configuration_frame_address_test.cc)
|
||||
target_link_libraries(xilinx_xc7series_configuration_frame_address_test
|
||||
libprjxray gtest_main absl::span)
|
||||
add_test(NAME xilinx_xc7series_configuration_frame_address_test
|
||||
COMMAND xilinx_xc7series_configuration_frame_address_test)
|
||||
|
||||
add_executable(xilinx_xc7series_configuration_packet_test
|
||||
xilinx/xc7series/configuration_packet_test.cc)
|
||||
target_link_libraries(xilinx_xc7series_configuration_packet_test
|
||||
|
|
|
|||
|
|
@ -43,8 +43,10 @@ uint8_t ConfigurationFrameAddress::minor_address() const {
|
|||
|
||||
namespace YAML {
|
||||
|
||||
Node convert<prjxray::xilinx::xc7series::ConfigurationFrameAddress>::encode(
|
||||
const prjxray::xilinx::xc7series::ConfigurationFrameAddress &rhs) {
|
||||
namespace xc7series = prjxray::xilinx::xc7series;
|
||||
|
||||
Node convert<xc7series::ConfigurationFrameAddress>::encode(
|
||||
const xc7series::ConfigurationFrameAddress &rhs) {
|
||||
Node node;
|
||||
node.SetTag("xilinx/xc7series/configuration_frame_address");
|
||||
node["block_type"] = rhs.block_type();
|
||||
|
|
@ -55,8 +57,8 @@ Node convert<prjxray::xilinx::xc7series::ConfigurationFrameAddress>::encode(
|
|||
return node;
|
||||
}
|
||||
|
||||
bool convert<prjxray::xilinx::xc7series::ConfigurationFrameAddress>::decode(
|
||||
const Node &node, prjxray::xilinx::xc7series::ConfigurationFrameAddress &lhs) {
|
||||
bool convert<xc7series::ConfigurationFrameAddress>::decode(
|
||||
const Node &node, xc7series::ConfigurationFrameAddress &lhs) {
|
||||
if (node.Tag() != "xilinx/xc7series/configuration_frame_address" ||
|
||||
!node["block_type"] ||
|
||||
!node["row_half"] ||
|
||||
|
|
@ -65,7 +67,7 @@ bool convert<prjxray::xilinx::xc7series::ConfigurationFrameAddress>::decode(
|
|||
!node["minor"]) return false;
|
||||
|
||||
lhs = prjxray::xilinx::xc7series::ConfigurationFrameAddress(
|
||||
node["block_type"].as<prjxray::xilinx::xc7series::BlockType>(),
|
||||
node["block_type"].as<xc7series::BlockType>(),
|
||||
node["row_half"].as<bool>(),
|
||||
node["row"].as<uint8_t>(),
|
||||
node["column"].as<uint32_t>(),
|
||||
|
|
|
|||
|
|
@ -0,0 +1,38 @@
|
|||
#include <prjxray/xilinx/xc7series/configuration_frame_address.h>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
namespace xc7series = prjxray::xilinx::xc7series;
|
||||
|
||||
TEST(ConfigurationFrameAddressTest, YamlEncode) {
|
||||
xc7series::ConfigurationFrameAddress address(
|
||||
xc7series::BlockType::BLOCK_RAM,
|
||||
false, 10, 0, 5);
|
||||
|
||||
YAML::Node node(address);
|
||||
|
||||
EXPECT_EQ(node.Tag(), "xilinx/xc7series/configuration_frame_address");
|
||||
EXPECT_EQ(node["block_type"].as<std::string>(), "BLOCK_RAM");
|
||||
EXPECT_EQ(node["row_half"].as<std::string>(), "top");
|
||||
EXPECT_EQ(node["row"].as<std::string>(), "10");
|
||||
EXPECT_EQ(node["column"].as<std::string>(), "0");
|
||||
EXPECT_EQ(node["minor"].as<std::string>(), "5");
|
||||
}
|
||||
|
||||
TEST(ConfigurationFrameAddressTest, YamlDecode) {
|
||||
YAML::Node node;
|
||||
node.SetTag("xilinx/xc7series/configuration_frame_address");
|
||||
node["block_type"] = "BLOCK_RAM";
|
||||
node["row_half"] = "bottom";
|
||||
node["row"] = "0";
|
||||
node["column"] = "5";
|
||||
node["minor"] = "11";
|
||||
|
||||
xc7series::ConfigurationFrameAddress address =
|
||||
node.as<xc7series::ConfigurationFrameAddress>();
|
||||
EXPECT_EQ(address.block_type(), xc7series::BlockType::BLOCK_RAM);
|
||||
EXPECT_TRUE(address.is_bottom_half_rows());
|
||||
EXPECT_EQ(address.row_address(), 0);
|
||||
EXPECT_EQ(address.column_address(), 5);
|
||||
EXPECT_EQ(address.minor_address(), 11);
|
||||
}
|
||||
Loading…
Reference in New Issue