Files
DRAMSys/tests/tests_dramsys/CommandMuxTests.cpp

111 lines
3.8 KiB
C++

///*
// * Copyright (c) 2019, Technische Universität Kaiserslautern
// * All rights reserved.
// *
// * Redistribution and use in source and binary forms, with or without
// * modification, are permitted provided that the following conditions are
// * met:
// *
// * 1. Redistributions of source code must retain the above copyright notice,
// * this list of conditions and the following disclaimer.
// *
// * 2. Redistributions in binary form must reproduce the above copyright
// * notice, this list of conditions and the following disclaimer in the
// * documentation and/or other materials provided with the distribution.
// *
// * 3. Neither the name of the copyright holder nor the names of its
// * contributors may be used to endorse or promote products derived from
// * this software without specific prior written permission.
// *
// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
// * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
// * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER
// * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
// * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
// * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
// * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
// * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// *
// * Authors:
// * Lukas Steiner
// */
//
//#include <gtest/gtest.h>
//#include <tlm.h>
//#include <utility>
//#include <vector>
//
//#include <DRAMSys/controller/cmdmux/CmdMuxOldest.h>
//#include <DRAMSys/controller/Command.h>
//
//using namespace DRAMSys;
//
//class CommandMuxState
//{
//public:
// Command firstCommand;
// Command secondCommand;
// Command resultCommand;
//};
//
//class CommandMuxTestBase : public testing::Test
//{
//public:
// CommandMux *commandMux;
//
// tlm_generic_payload *firstPayload;
// tlm_generic_payload *secondPayload;
//
// std::pair<Command, tlm_generic_payload *> firstPair;
// std::pair<Command, tlm_generic_payload *> secondPair;
//
// std::vector<std::pair<Command, tlm_generic_payload *>> readyCommands;
//
// std::pair<Command, tlm_generic_payload *> result;
//
// CommandMuxTestBase()
// {
// commandMux = new CommandMux();
// firstPayload = new tlm_generic_payload();
// secondPayload = new tlm_generic_payload();
// }
//
// ~CommandMuxTestBase()
// {
// delete commandMux;
// delete firstPayload;
// delete secondPayload;
// }
//};
//
//class CommandMuxTestParam : public CommandMuxTestBase, public testing::WithParamInterface<CommandMuxState>
//{
//public:
// CommandMuxTestParam()
// {
// commandMux->insertPayload(firstPayload);
// commandMux->insertPayload(secondPayload);
//
// firstPair.first = GetParam().firstCommand;
// firstPair.second = firstPayload;
// secondPair.first = GetParam().secondCommand;
// secondPair.second = secondPayload;
//
// readyCommands.push_back(secondPair);
// readyCommands.push_back(firstPair);
// result = commandMux->selectCommand(readyCommands);
// }
//};
//
//TEST_P(CommandMuxTestParam, satisfiesCommandOrder)
//{
// EXPECT_EQ(result.first, GetParam().resultCommand);
//}
//
//INSTANTIATE_TEST_CASE_P(Default, CommandMuxTestParam, testing::Values(
// CommandMuxState{Command::RD, Command::WR, Command::RD},
// CommandMuxState{Command::RD, Command::ACT, Command::ACT}));