mirror of https://github.com/openXC7/prjxray.git
65 lines
2.4 KiB
C++
65 lines
2.4 KiB
C++
/*
|
|
* Copyright (C) 2017-2020 The Project X-Ray Authors.
|
|
*
|
|
* Use of this source code is governed by a ISC-style
|
|
* license that can be found in the LICENSE file or at
|
|
* https://opensource.org/licenses/ISC
|
|
*
|
|
* SPDX-License-Identifier: ISC
|
|
*/
|
|
#include <vector>
|
|
|
|
#include <gtest/gtest.h>
|
|
|
|
#include <prjxray/xilinx/architectures.h>
|
|
#include <prjxray/xilinx/frames.h>
|
|
#include <prjxray/xilinx/xc7series/part.h>
|
|
|
|
using namespace prjxray::xilinx;
|
|
|
|
TEST(FramesTest, FillInMissingFrames) {
|
|
std::vector<xc7series::FrameAddress> test_part_addresses = {
|
|
xc7series::FrameAddress(xc7series::BlockType::CLB_IO_CLK, false, 0,
|
|
0, 0),
|
|
xc7series::FrameAddress(xc7series::BlockType::CLB_IO_CLK, false, 0,
|
|
0, 1),
|
|
xc7series::FrameAddress(xc7series::BlockType::CLB_IO_CLK, false, 0,
|
|
0, 2),
|
|
xc7series::FrameAddress(xc7series::BlockType::CLB_IO_CLK, false, 0,
|
|
0, 3),
|
|
xc7series::FrameAddress(xc7series::BlockType::CLB_IO_CLK, false, 0,
|
|
0, 4)};
|
|
|
|
xc7series::Part test_part(0x1234, test_part_addresses);
|
|
|
|
Frames<Series7> frames;
|
|
frames.getFrames().emplace(std::make_pair(
|
|
xc7series::FrameAddress(2), std::vector<uint32_t>(101, 0xCC)));
|
|
frames.getFrames().emplace(std::make_pair(
|
|
xc7series::FrameAddress(3), std::vector<uint32_t>(101, 0xDD)));
|
|
frames.getFrames().emplace(std::make_pair(
|
|
xc7series::FrameAddress(4), std::vector<uint32_t>(101, 0xEE)));
|
|
|
|
ASSERT_EQ(frames.getFrames().size(), 3);
|
|
EXPECT_EQ(frames.getFrames().at(test_part_addresses[2]),
|
|
std::vector<uint32_t>(101, 0xCC));
|
|
EXPECT_EQ(frames.getFrames().at(test_part_addresses[3]),
|
|
std::vector<uint32_t>(101, 0xDD));
|
|
EXPECT_EQ(frames.getFrames().at(test_part_addresses[4]),
|
|
std::vector<uint32_t>(101, 0xEE));
|
|
|
|
frames.addMissingFrames(test_part);
|
|
|
|
ASSERT_EQ(frames.getFrames().size(), 5);
|
|
EXPECT_EQ(frames.getFrames().at(test_part_addresses[0]),
|
|
std::vector<uint32_t>(101, 0));
|
|
EXPECT_EQ(frames.getFrames().at(test_part_addresses[1]),
|
|
std::vector<uint32_t>(101, 0));
|
|
EXPECT_EQ(frames.getFrames().at(test_part_addresses[2]),
|
|
std::vector<uint32_t>(101, 0xCC));
|
|
EXPECT_EQ(frames.getFrames().at(test_part_addresses[3]),
|
|
std::vector<uint32_t>(101, 0xDD));
|
|
EXPECT_EQ(frames.getFrames().at(test_part_addresses[4]),
|
|
std::vector<uint32_t>(101, 0xEE));
|
|
}
|