|
Packit |
534379 |
// Copyright(c) 2018, Intel Corporation
|
|
Packit |
534379 |
//
|
|
Packit |
534379 |
// Redistribution and use in source and binary forms, with or without
|
|
Packit |
534379 |
// modification, are permitted provided that the following conditions are met:
|
|
Packit |
534379 |
//
|
|
Packit |
534379 |
// * Redistributions of source code must retain the above copyright notice,
|
|
Packit |
534379 |
// this list of conditions and the following disclaimer.
|
|
Packit |
534379 |
// * Redistributions in binary form must reproduce the above copyright notice,
|
|
Packit |
534379 |
// this list of conditions and the following disclaimer in the documentation
|
|
Packit |
534379 |
// and/or other materials provided with the distribution.
|
|
Packit |
534379 |
// * Neither the name of Intel Corporation nor the names of its contributors
|
|
Packit |
534379 |
// may be used to endorse or promote products derived from this software
|
|
Packit |
534379 |
// without specific prior written permission.
|
|
Packit |
534379 |
//
|
|
Packit |
534379 |
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
Packit |
534379 |
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
Packit |
534379 |
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
Packit |
534379 |
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
Packit |
534379 |
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
Packit |
534379 |
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
Packit |
534379 |
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
Packit |
534379 |
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
Packit |
534379 |
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
Packit |
534379 |
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
Packit |
534379 |
// POSSIBILITY OF SUCH DAMAGE.
|
|
Packit |
534379 |
|
|
Packit |
534379 |
#include <opae/fpga.h>
|
|
Packit |
534379 |
|
|
Packit |
534379 |
extern "C" {
|
|
Packit |
534379 |
|
|
Packit |
534379 |
#include <json-c/json.h>
|
|
Packit |
534379 |
#include <uuid/uuid.h>
|
|
Packit |
534379 |
|
|
Packit |
534379 |
struct UserClkCommandLine
|
|
Packit |
534379 |
{
|
|
Packit |
534379 |
int segment;
|
|
Packit |
534379 |
int bus;
|
|
Packit |
534379 |
int device;
|
|
Packit |
534379 |
int function;
|
|
Packit |
534379 |
int socket;
|
|
Packit |
534379 |
int freq_high;
|
|
Packit |
534379 |
int freq_low;
|
|
Packit |
534379 |
};
|
|
Packit |
534379 |
extern struct UserClkCommandLine userclkCmdLine;
|
|
Packit |
534379 |
|
|
Packit |
534379 |
void UserClkAppShowHelp(void);
|
|
Packit |
534379 |
|
|
Packit |
534379 |
void print_err(const char *s, fpga_result res);
|
|
Packit |
534379 |
|
|
Packit |
534379 |
int ParseCmds(struct UserClkCommandLine *userclkCmdLine, int argc, char *argv[]);
|
|
Packit |
534379 |
|
|
Packit |
534379 |
int userclk_main(int argc, char *argv[]);
|
|
Packit |
534379 |
|
|
Packit |
534379 |
}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
#include <config.h>
|
|
Packit |
534379 |
|
|
Packit |
534379 |
#include <iostream>
|
|
Packit |
534379 |
#include <vector>
|
|
Packit |
534379 |
#include <cstdio>
|
|
Packit |
534379 |
#include <cstdlib>
|
|
Packit |
534379 |
#include <cstring>
|
|
Packit |
534379 |
#include <errno.h>
|
|
Packit |
534379 |
#include <unistd.h>
|
|
Packit |
534379 |
#include "gtest/gtest.h"
|
|
Packit |
534379 |
#include "mock/test_system.h"
|
|
Packit |
534379 |
|
|
Packit |
534379 |
using namespace opae::testing;
|
|
Packit |
534379 |
|
|
Packit |
534379 |
class userclk_c_p : public ::testing::TestWithParam<std::string> {
|
|
Packit |
534379 |
protected:
|
|
Packit |
534379 |
userclk_c_p() {}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
virtual void SetUp() override {
|
|
Packit |
534379 |
std::string platform_key = GetParam();
|
|
Packit |
534379 |
ASSERT_TRUE(test_platform::exists(platform_key));
|
|
Packit |
534379 |
platform_ = test_platform::get(platform_key);
|
|
Packit |
534379 |
system_ = test_system::instance();
|
|
Packit |
534379 |
system_->initialize();
|
|
Packit |
534379 |
system_->prepare_syfs(platform_);
|
|
Packit |
534379 |
|
|
Packit |
534379 |
EXPECT_EQ(fpgaInitialize(NULL), FPGA_OK);
|
|
Packit |
534379 |
|
|
Packit |
534379 |
optind = 0;
|
|
Packit |
534379 |
cmd_line_ = userclkCmdLine;
|
|
Packit |
534379 |
}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
virtual void TearDown() override {
|
|
Packit |
534379 |
userclkCmdLine = cmd_line_;
|
|
Packit |
534379 |
fpgaFinalize();
|
|
Packit |
534379 |
system_->finalize();
|
|
Packit |
534379 |
}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
struct UserClkCommandLine cmd_line_;
|
|
Packit |
534379 |
test_platform platform_;
|
|
Packit |
534379 |
test_system *system_;
|
|
Packit |
534379 |
};
|
|
Packit |
534379 |
|
|
Packit |
534379 |
/**
|
|
Packit |
534379 |
* @test help
|
|
Packit |
534379 |
* @brief Test: UserClkAppShowHelp
|
|
Packit |
534379 |
* @details UserClkAppShowHelp displays the application help message.
|
|
Packit |
534379 |
*/
|
|
Packit |
534379 |
TEST_P(userclk_c_p, help) {
|
|
Packit |
534379 |
UserClkAppShowHelp();
|
|
Packit |
534379 |
}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
/**
|
|
Packit |
534379 |
* @test print_err
|
|
Packit |
534379 |
* @brief Test: print_err
|
|
Packit |
534379 |
* @details print_err prints the given string and
|
|
Packit |
534379 |
* the decoded representation of the fpga_result
|
|
Packit |
534379 |
* to stderr.
|
|
Packit |
534379 |
*/
|
|
Packit |
534379 |
TEST_P(userclk_c_p, print_err) {
|
|
Packit |
534379 |
print_err("msg", FPGA_OK);
|
|
Packit |
534379 |
}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
/**
|
|
Packit |
534379 |
* @test parse_cmd0
|
|
Packit |
534379 |
* @brief Test: ParseCmds
|
|
Packit |
534379 |
* @details When passed an invalid command option,
|
|
Packit |
534379 |
* ParseCmds prints a message and
|
|
Packit |
534379 |
* returns a negative value.
|
|
Packit |
534379 |
*/
|
|
Packit |
534379 |
TEST_P(userclk_c_p, parse_cmd0) {
|
|
Packit |
534379 |
struct UserClkCommandLine cmd;
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char zero[20];
|
|
Packit |
534379 |
char one[20];
|
|
Packit |
534379 |
strcpy(zero, "userclk");
|
|
Packit |
534379 |
strcpy(one, "-Y");
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char *argv[] = { zero, one };
|
|
Packit |
534379 |
|
|
Packit |
534379 |
EXPECT_LT(ParseCmds(&cmd, 2, argv), 0);
|
|
Packit |
534379 |
}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
/**
|
|
Packit |
534379 |
* @test parse_cmd1
|
|
Packit |
534379 |
* @brief Test: ParseCmds
|
|
Packit |
534379 |
* @details When called with "-h",
|
|
Packit |
534379 |
* ParseCmds prints the app help and
|
|
Packit |
534379 |
* returns a negative value.
|
|
Packit |
534379 |
*/
|
|
Packit |
534379 |
TEST_P(userclk_c_p, parse_cmd1) {
|
|
Packit |
534379 |
struct UserClkCommandLine cmd;
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char zero[20];
|
|
Packit |
534379 |
char one[20];
|
|
Packit |
534379 |
strcpy(zero, "userclk");
|
|
Packit |
534379 |
strcpy(one, "-h");
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char *argv[] = { zero, one };
|
|
Packit |
534379 |
|
|
Packit |
534379 |
EXPECT_LT(ParseCmds(&cmd, 2, argv), 0);
|
|
Packit |
534379 |
}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
/**
|
|
Packit |
534379 |
* @test parse_cmd2
|
|
Packit |
534379 |
* @brief Test: ParseCmds
|
|
Packit |
534379 |
* @details When given a command option that requires a param,
|
|
Packit |
534379 |
* omitting the required param causes ParseCmds to
|
|
Packit |
534379 |
* return a negative value.
|
|
Packit |
534379 |
*/
|
|
Packit |
534379 |
TEST_P(userclk_c_p, parse_cmd2) {
|
|
Packit |
534379 |
struct UserClkCommandLine cmd;
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char zero[20];
|
|
Packit |
534379 |
char one[20];
|
|
Packit |
534379 |
strcpy(zero, "userclk");
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char *argv[] = { zero, one };
|
|
Packit |
534379 |
|
|
Packit |
534379 |
strcpy(one, "--segment");
|
|
Packit |
534379 |
EXPECT_LT(ParseCmds(&cmd, 2, argv), 0);
|
|
Packit |
534379 |
|
|
Packit |
534379 |
optind = 0;
|
|
Packit |
534379 |
strcpy(one, "-B");
|
|
Packit |
534379 |
EXPECT_LT(ParseCmds(&cmd, 2, argv), 0);
|
|
Packit |
534379 |
|
|
Packit |
534379 |
optind = 0;
|
|
Packit |
534379 |
strcpy(one, "-D");
|
|
Packit |
534379 |
EXPECT_LT(ParseCmds(&cmd, 2, argv), 0);
|
|
Packit |
534379 |
|
|
Packit |
534379 |
optind = 0;
|
|
Packit |
534379 |
strcpy(one, "-F");
|
|
Packit |
534379 |
EXPECT_LT(ParseCmds(&cmd, 2, argv), 0);
|
|
Packit |
534379 |
|
|
Packit |
534379 |
optind = 0;
|
|
Packit |
534379 |
strcpy(one, "-S");
|
|
Packit |
534379 |
EXPECT_LT(ParseCmds(&cmd, 2, argv), 0);
|
|
Packit |
534379 |
|
|
Packit |
534379 |
optind = 0;
|
|
Packit |
534379 |
strcpy(one, "-P");
|
|
Packit |
534379 |
EXPECT_LT(ParseCmds(&cmd, 2, argv), 0);
|
|
Packit |
534379 |
|
|
Packit |
534379 |
optind = 0;
|
|
Packit |
534379 |
strcpy(one, "-H");
|
|
Packit |
534379 |
EXPECT_LT(ParseCmds(&cmd, 2, argv), 0);
|
|
Packit |
534379 |
|
|
Packit |
534379 |
optind = 0;
|
|
Packit |
534379 |
strcpy(one, "-L");
|
|
Packit |
534379 |
EXPECT_LT(ParseCmds(&cmd, 2, argv), 0);
|
|
Packit |
534379 |
}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
/**
|
|
Packit |
534379 |
* @test parse_cmd3
|
|
Packit |
534379 |
* @brief Test: ParseCmds
|
|
Packit |
534379 |
* @details When given valid command options,
|
|
Packit |
534379 |
* ParseCmds populates the given UserClkCommandLine,
|
|
Packit |
534379 |
* returning zero.
|
|
Packit |
534379 |
*/
|
|
Packit |
534379 |
TEST_P(userclk_c_p, parse_cmd3) {
|
|
Packit |
534379 |
struct UserClkCommandLine cmd = cmd_line_;
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char zero[20];
|
|
Packit |
534379 |
char one[20];
|
|
Packit |
534379 |
char two[20];
|
|
Packit |
534379 |
char three[20];
|
|
Packit |
534379 |
char four[20];
|
|
Packit |
534379 |
char five[20];
|
|
Packit |
534379 |
char six[20];
|
|
Packit |
534379 |
char seven[20];
|
|
Packit |
534379 |
char eight[20];
|
|
Packit |
534379 |
char nine[20];
|
|
Packit |
534379 |
char ten[20];
|
|
Packit |
534379 |
char eleven[20];
|
|
Packit |
534379 |
char twelve[20];
|
|
Packit |
534379 |
char thirteen[20];
|
|
Packit |
534379 |
char fourteen[20];
|
|
Packit |
534379 |
strcpy(zero, "userclk");
|
|
Packit |
534379 |
strcpy(one, "--segment");
|
|
Packit |
534379 |
strcpy(two, "0x1234");
|
|
Packit |
534379 |
strcpy(three, "-B");
|
|
Packit |
534379 |
strcpy(four, "3");
|
|
Packit |
534379 |
strcpy(five, "-D");
|
|
Packit |
534379 |
strcpy(six, "4");
|
|
Packit |
534379 |
strcpy(seven, "-F");
|
|
Packit |
534379 |
strcpy(eight, "5");
|
|
Packit |
534379 |
strcpy(nine, "-S");
|
|
Packit |
534379 |
strcpy(ten, "6");
|
|
Packit |
534379 |
strcpy(eleven, "-H");
|
|
Packit |
534379 |
strcpy(twelve, "8");
|
|
Packit |
534379 |
strcpy(thirteen, "-L");
|
|
Packit |
534379 |
strcpy(fourteen, "9");
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char *argv[] = { zero, one, two, three, four,
|
|
Packit |
534379 |
five, six, seven, eight, nine,
|
|
Packit |
534379 |
ten, eleven, twelve, thirteen, fourteen };
|
|
Packit |
534379 |
|
|
Packit |
534379 |
EXPECT_EQ(ParseCmds(&cmd, 15, argv), 0);
|
|
Packit |
534379 |
EXPECT_EQ(cmd.segment, 0x1234);
|
|
Packit |
534379 |
EXPECT_EQ(cmd.bus, 3);
|
|
Packit |
534379 |
EXPECT_EQ(cmd.device, 4);
|
|
Packit |
534379 |
EXPECT_EQ(cmd.function, 5);
|
|
Packit |
534379 |
EXPECT_EQ(cmd.socket, 6);
|
|
Packit |
534379 |
EXPECT_EQ(cmd.freq_high, 8);
|
|
Packit |
534379 |
EXPECT_EQ(cmd.freq_low, 9);
|
|
Packit |
534379 |
}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
/**
|
|
Packit |
534379 |
* @test invalid_cmd_characters_02
|
|
Packit |
534379 |
* @brief Test: ParseCmds, userclk_main
|
|
Packit |
534379 |
* @details When given invalid command options,
|
|
Packit |
534379 |
* ParseCmds populates the given UserClkCommandLine,
|
|
Packit |
534379 |
* returning FPGA_INVALID_PARAM.
|
|
Packit |
534379 |
*/
|
|
Packit |
534379 |
TEST_P(userclk_c_p, invalid_cmd_characters_01) {
|
|
Packit |
534379 |
struct UserClkCommandLine cmd = cmd_line_;
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char zero[32];
|
|
Packit |
534379 |
char one[32];
|
|
Packit |
534379 |
char two[32];
|
|
Packit |
534379 |
char three[32];
|
|
Packit |
534379 |
char four[32];
|
|
Packit |
534379 |
char five[48];
|
|
Packit |
534379 |
char six[32];
|
|
Packit |
534379 |
char seven[32];
|
|
Packit |
534379 |
char eight[32];
|
|
Packit |
534379 |
char nine[32];
|
|
Packit |
534379 |
char ten[32];
|
|
Packit |
534379 |
char eleven[32];
|
|
Packit |
534379 |
char twelve[32];
|
|
Packit |
534379 |
char thirteen[32];
|
|
Packit |
534379 |
char fourteen[32];
|
|
Packit |
534379 |
strcpy(zero, "userclk_+*(^> ");
|
|
Packit |
534379 |
strcpy(one, "--segm ent");
|
|
Packit |
534379 |
strcpy(two, "0x1234");
|
|
Packit |
534379 |
strcpy(three, "-Bus");
|
|
Packit |
534379 |
strcpy(four, "3");
|
|
Packit |
534379 |
strcpy(five, "-Devi +_( \v -0923198 (*)& ces");
|
|
Packit |
534379 |
strcpy(six, "4");
|
|
Packit |
534379 |
strcpy(seven, "-Fun\t\nction");
|
|
Packit |
534379 |
strcpy(eight, "5");
|
|
Packit |
534379 |
strcpy(nine, "-Sockett\e \'\?//tttttt \b");
|
|
Packit |
534379 |
strcpy(ten, "6");
|
|
Packit |
534379 |
strcpy(eleven, "- High");
|
|
Packit |
534379 |
strcpy(twelve, "-100");
|
|
Packit |
534379 |
strcpy(thirteen, " ---Low");
|
|
Packit |
534379 |
strcpy(fourteen, "-200");
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char *argv[] = { zero, one, two, three, four,
|
|
Packit |
534379 |
five, six, seven, eight, nine,
|
|
Packit |
534379 |
ten, eleven, twelve, thirteen, fourteen };
|
|
Packit |
534379 |
|
|
Packit |
534379 |
EXPECT_NE(ParseCmds(&cmd, 15, argv), 0);
|
|
Packit |
534379 |
EXPECT_NE(userclk_main(15, argv), 0);
|
|
Packit |
534379 |
}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
/**
|
|
Packit |
534379 |
* @test invalid_cmd_characters_02
|
|
Packit |
534379 |
* @brief Test: ParseCmds, userclk_main
|
|
Packit |
534379 |
* @details When given invalid command options,
|
|
Packit |
534379 |
* ParseCmds populates the given UserClkCommandLine,
|
|
Packit |
534379 |
* returning zero. Userclk_main returns FPGA_INVALID_PARAM.
|
|
Packit |
534379 |
*/
|
|
Packit |
534379 |
TEST_P(userclk_c_p, invalid_cmd_characters_02) {
|
|
Packit |
534379 |
struct UserClkCommandLine cmd;
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char zero[32];
|
|
Packit |
534379 |
char one[32];
|
|
Packit |
534379 |
char two[48];
|
|
Packit |
534379 |
char three[32];
|
|
Packit |
534379 |
char four[32];
|
|
Packit |
534379 |
char five[32];
|
|
Packit |
534379 |
char six[32];
|
|
Packit |
534379 |
char seven[32];
|
|
Packit |
534379 |
char eight[48];
|
|
Packit |
534379 |
char nine[32];
|
|
Packit |
534379 |
char ten[32];
|
|
Packit |
534379 |
char eleven[32];
|
|
Packit |
534379 |
char twelve[32];
|
|
Packit |
534379 |
char thirteen[32];
|
|
Packit |
534379 |
char fourteen[32];
|
|
Packit |
534379 |
strcpy(zero, "");
|
|
Packit |
534379 |
strcpy(one, "--segment");
|
|
Packit |
534379 |
strcpy(two, "0x0123897349 *(^%$%^$%@^?>
|
|
Packit |
534379 |
strcpy(three, " --B");
|
|
Packit |
534379 |
strcpy(four, "334987238689 \x01\x05\x0a\x15");
|
|
Packit |
534379 |
strcpy(five, "-D");
|
|
Packit |
534379 |
strcpy(six, "41278991 02a8974913");
|
|
Packit |
534379 |
strcpy(seven, "-F");
|
|
Packit |
534379 |
strcpy(eight, "529378190 \t 3haskfhahhi\\ | // o=1-21");
|
|
Packit |
534379 |
strcpy(nine, "-S");
|
|
Packit |
534379 |
strcpy(ten, " 6`1238 \n -349287419=-0;");
|
|
Packit |
534379 |
strcpy(eleven, "-H");
|
|
Packit |
534379 |
strcpy(twelve, "400000000000000000000000000");
|
|
Packit |
534379 |
strcpy(thirteen, "-L");
|
|
Packit |
534379 |
strcpy(fourteen, "9.999");
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char *argv[] = { zero, one, two, three, four,
|
|
Packit |
534379 |
eleven, twelve, thirteen, fourteen,
|
|
Packit |
534379 |
five, six, seven, eight, nine, ten};
|
|
Packit |
534379 |
|
|
Packit |
534379 |
EXPECT_EQ(ParseCmds(&cmd, 15, argv), 0);
|
|
Packit |
534379 |
EXPECT_NE(userclk_main(15, argv), 0);
|
|
Packit |
534379 |
}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
|
|
Packit |
534379 |
/**
|
|
Packit |
534379 |
* @test main0
|
|
Packit |
534379 |
* @brief Test: userclk_main
|
|
Packit |
534379 |
* @details When given no command options,
|
|
Packit |
534379 |
* userclk_main displays the app help message,
|
|
Packit |
534379 |
* and the fn returns non-zero.
|
|
Packit |
534379 |
*/
|
|
Packit |
534379 |
TEST_P(userclk_c_p, main0) {
|
|
Packit |
534379 |
char zero[20];
|
|
Packit |
534379 |
strcpy(zero, "userclk");
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char *argv[] = { zero };
|
|
Packit |
534379 |
|
|
Packit |
534379 |
EXPECT_NE(userclk_main(1, argv), 0);
|
|
Packit |
534379 |
}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
/**
|
|
Packit |
534379 |
* @test main1
|
|
Packit |
534379 |
* @brief Test: userclk_main
|
|
Packit |
534379 |
* @details When given "-h",
|
|
Packit |
534379 |
* userclk_main displays the app help message,
|
|
Packit |
534379 |
* and the fn returns non-zero.
|
|
Packit |
534379 |
*/
|
|
Packit |
534379 |
TEST_P(userclk_c_p, main1) {
|
|
Packit |
534379 |
char zero[20];
|
|
Packit |
534379 |
char one[20];
|
|
Packit |
534379 |
strcpy(zero, "userclk");
|
|
Packit |
534379 |
strcpy(one, "-h");
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char *argv[] = { zero, one };
|
|
Packit |
534379 |
|
|
Packit |
534379 |
EXPECT_NE(userclk_main(2, argv), 0);
|
|
Packit |
534379 |
}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
/**
|
|
Packit |
534379 |
* @test main2
|
|
Packit |
534379 |
* @brief Test: userclk_main
|
|
Packit |
534379 |
* @details When given valid command parameters,
|
|
Packit |
534379 |
* but no device is identified by those parameters,
|
|
Packit |
534379 |
* userclk_main displays an error message,
|
|
Packit |
534379 |
* and the fn returns non-zero.
|
|
Packit |
534379 |
*/
|
|
Packit |
534379 |
TEST_P(userclk_c_p, main2) {
|
|
Packit |
534379 |
char zero[20];
|
|
Packit |
534379 |
char one[20];
|
|
Packit |
534379 |
char two[20];
|
|
Packit |
534379 |
strcpy(zero, "userclk");
|
|
Packit |
534379 |
strcpy(one, "-B");
|
|
Packit |
534379 |
strcpy(two, "99");
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char *argv[] = { zero, one, two };
|
|
Packit |
534379 |
|
|
Packit |
534379 |
EXPECT_NE(userclk_main(3, argv), 0);
|
|
Packit |
534379 |
}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
INSTANTIATE_TEST_CASE_P(userclk_c, userclk_c_p,
|
|
Packit |
534379 |
::testing::ValuesIn(test_platform::platforms({})));
|
|
Packit |
534379 |
|
|
Packit |
534379 |
class userclk_c_hw_p : public userclk_c_p{
|
|
Packit |
534379 |
protected:
|
|
Packit |
534379 |
userclk_c_hw_p() {};
|
|
Packit |
534379 |
};
|
|
Packit |
534379 |
|
|
Packit |
534379 |
/**
|
|
Packit |
534379 |
* @test main3
|
|
Packit |
534379 |
* @brief Test: userclk_main
|
|
Packit |
534379 |
* @details When given valid command parameters that identify an accelerator,
|
|
Packit |
534379 |
* if --freq-low is not given,
|
|
Packit |
534379 |
* then low is calculated from high,
|
|
Packit |
534379 |
* and the fn returns zero.
|
|
Packit |
534379 |
*/
|
|
Packit |
534379 |
TEST_P(userclk_c_hw_p, main3) {
|
|
Packit |
534379 |
char zero[20];
|
|
Packit |
534379 |
char one[20];
|
|
Packit |
534379 |
char two[20];
|
|
Packit |
534379 |
char three[20];
|
|
Packit |
534379 |
char four[20];
|
|
Packit |
534379 |
char five[20];
|
|
Packit |
534379 |
char six[20];
|
|
Packit |
534379 |
char seven[20];
|
|
Packit |
534379 |
char eight[20];
|
|
Packit |
534379 |
char nine[20];
|
|
Packit |
534379 |
char ten[20];
|
|
Packit |
534379 |
char eleven[20];
|
|
Packit |
534379 |
char twelve[20];
|
|
Packit |
534379 |
strcpy(zero, "userclk");
|
|
Packit |
534379 |
strcpy(one, "--segment");
|
|
Packit |
534379 |
sprintf(two, "%d", platform_.devices[0].segment);
|
|
Packit |
534379 |
strcpy(three, "-B");
|
|
Packit |
534379 |
sprintf(four, "%d", platform_.devices[0].bus);
|
|
Packit |
534379 |
strcpy(five, "-D");
|
|
Packit |
534379 |
sprintf(six, "%d", platform_.devices[0].device);
|
|
Packit |
534379 |
strcpy(seven, "-F");
|
|
Packit |
534379 |
sprintf(eight, "%d", platform_.devices[0].function);
|
|
Packit |
534379 |
strcpy(nine, "-S");
|
|
Packit |
534379 |
sprintf(ten, "%d", platform_.devices[0].socket_id);
|
|
Packit |
534379 |
strcpy(eleven, "-H");
|
|
Packit |
534379 |
strcpy(twelve, "400");
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char *argv[] = { zero, one, two, three, four,
|
|
Packit |
534379 |
five, six, seven, eight, nine,
|
|
Packit |
534379 |
ten, eleven, twelve };
|
|
Packit |
534379 |
|
|
Packit |
534379 |
EXPECT_EQ(userclk_main(13, argv), FPGA_OK);
|
|
Packit |
534379 |
}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
/**
|
|
Packit |
534379 |
* @test main4
|
|
Packit |
534379 |
* @brief Test: userclk_main
|
|
Packit |
534379 |
* @details When given valid command parameters that identify an accelerator,
|
|
Packit |
534379 |
* if --freq-high is not given,
|
|
Packit |
534379 |
* then high is calculated from low,
|
|
Packit |
534379 |
* and the fn returns zero.
|
|
Packit |
534379 |
*/
|
|
Packit |
534379 |
TEST_P(userclk_c_hw_p, main4) {
|
|
Packit |
534379 |
char zero[20];
|
|
Packit |
534379 |
char one[20];
|
|
Packit |
534379 |
char two[20];
|
|
Packit |
534379 |
char three[20];
|
|
Packit |
534379 |
char four[20];
|
|
Packit |
534379 |
char five[20];
|
|
Packit |
534379 |
char six[20];
|
|
Packit |
534379 |
char seven[20];
|
|
Packit |
534379 |
char eight[20];
|
|
Packit |
534379 |
char nine[20];
|
|
Packit |
534379 |
char ten[20];
|
|
Packit |
534379 |
char eleven[20];
|
|
Packit |
534379 |
char twelve[20];
|
|
Packit |
534379 |
strcpy(zero, "userclk");
|
|
Packit |
534379 |
strcpy(one, "--segment");
|
|
Packit |
534379 |
sprintf(two, "%d", platform_.devices[0].segment);
|
|
Packit |
534379 |
strcpy(three, "-B");
|
|
Packit |
534379 |
sprintf(four, "%d", platform_.devices[0].bus);
|
|
Packit |
534379 |
strcpy(five, "-D");
|
|
Packit |
534379 |
sprintf(six, "%d", platform_.devices[0].device);
|
|
Packit |
534379 |
strcpy(seven, "-F");
|
|
Packit |
534379 |
sprintf(eight, "%d", platform_.devices[0].function);
|
|
Packit |
534379 |
strcpy(nine, "-S");
|
|
Packit |
534379 |
sprintf(ten, "%d", platform_.devices[0].socket_id);
|
|
Packit |
534379 |
strcpy(eleven, "-L");
|
|
Packit |
534379 |
strcpy(twelve, "200");
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char *argv[] = { zero, one, two, three, four,
|
|
Packit |
534379 |
five, six, seven, eight, nine,
|
|
Packit |
534379 |
ten, eleven, twelve };
|
|
Packit |
534379 |
|
|
Packit |
534379 |
EXPECT_EQ(userclk_main(13, argv), FPGA_OK);
|
|
Packit |
534379 |
}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
/**
|
|
Packit |
534379 |
* @test main5
|
|
Packit |
534379 |
* @brief Test: userclk_main
|
|
Packit |
534379 |
* @details When given valid command parameters that identify an accelerator,
|
|
Packit |
534379 |
* if both --freq-high (-H) and --freq-low (-L) are given,
|
|
Packit |
534379 |
* then high must equal 2 * low,
|
|
Packit |
534379 |
* or else the fn returns FPGA_INVALID_PARAM.
|
|
Packit |
534379 |
*/
|
|
Packit |
534379 |
TEST_P(userclk_c_hw_p, main5) {
|
|
Packit |
534379 |
char zero[20];
|
|
Packit |
534379 |
char one[20];
|
|
Packit |
534379 |
char two[20];
|
|
Packit |
534379 |
char three[20];
|
|
Packit |
534379 |
char four[20];
|
|
Packit |
534379 |
char five[20];
|
|
Packit |
534379 |
char six[20];
|
|
Packit |
534379 |
char seven[20];
|
|
Packit |
534379 |
char eight[20];
|
|
Packit |
534379 |
char nine[20];
|
|
Packit |
534379 |
char ten[20];
|
|
Packit |
534379 |
char eleven[20];
|
|
Packit |
534379 |
char twelve[20];
|
|
Packit |
534379 |
char thirteen[20];
|
|
Packit |
534379 |
char fourteen[20];
|
|
Packit |
534379 |
strcpy(zero, "userclk");
|
|
Packit |
534379 |
strcpy(one, "--segment");
|
|
Packit |
534379 |
sprintf(two, "%d", platform_.devices[0].segment);
|
|
Packit |
534379 |
strcpy(three, "-B");
|
|
Packit |
534379 |
sprintf(four, "%d", platform_.devices[0].bus);
|
|
Packit |
534379 |
strcpy(five, "-D");
|
|
Packit |
534379 |
sprintf(six, "%d", platform_.devices[0].device);
|
|
Packit |
534379 |
strcpy(seven, "-F");
|
|
Packit |
534379 |
sprintf(eight, "%d", platform_.devices[0].function);
|
|
Packit |
534379 |
strcpy(nine, "-S");
|
|
Packit |
534379 |
sprintf(ten, "%d", platform_.devices[0].socket_id);
|
|
Packit |
534379 |
strcpy(eleven, "-H");
|
|
Packit |
534379 |
strcpy(twelve, "300");
|
|
Packit |
534379 |
strcpy(thirteen, "-L");
|
|
Packit |
534379 |
strcpy(fourteen, "100");
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char *argv[] = { zero, one, two, three, four,
|
|
Packit |
534379 |
five, six, seven, eight, nine,
|
|
Packit |
534379 |
ten, eleven, twelve, thirteen, fourteen };
|
|
Packit |
534379 |
|
|
Packit |
534379 |
EXPECT_EQ(userclk_main(15, argv), FPGA_INVALID_PARAM);
|
|
Packit |
534379 |
}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
/**
|
|
Packit |
534379 |
* @test main6
|
|
Packit |
534379 |
* @brief Test: userclk_main
|
|
Packit |
534379 |
* @details When given valid command parameters that identify an accelerator,
|
|
Packit |
534379 |
* if neither --freq-high (-H) nor --freq-low (-L) is given,
|
|
Packit |
534379 |
* then the function prints an error
|
|
Packit |
534379 |
* and returns FPGA_INVALID_PARAM.
|
|
Packit |
534379 |
*/
|
|
Packit |
534379 |
TEST_P(userclk_c_hw_p, main6) {
|
|
Packit |
534379 |
char zero[20];
|
|
Packit |
534379 |
char one[20];
|
|
Packit |
534379 |
char two[20];
|
|
Packit |
534379 |
char three[20];
|
|
Packit |
534379 |
char four[20];
|
|
Packit |
534379 |
char five[20];
|
|
Packit |
534379 |
char six[20];
|
|
Packit |
534379 |
char seven[20];
|
|
Packit |
534379 |
char eight[20];
|
|
Packit |
534379 |
char nine[20];
|
|
Packit |
534379 |
char ten[20];
|
|
Packit |
534379 |
strcpy(zero, "userclk");
|
|
Packit |
534379 |
strcpy(one, "--segment");
|
|
Packit |
534379 |
sprintf(two, "%d", platform_.devices[0].segment);
|
|
Packit |
534379 |
strcpy(three, "-B");
|
|
Packit |
534379 |
sprintf(four, "%d", platform_.devices[0].bus);
|
|
Packit |
534379 |
strcpy(five, "-D");
|
|
Packit |
534379 |
sprintf(six, "%d", platform_.devices[0].device);
|
|
Packit |
534379 |
strcpy(seven, "-F");
|
|
Packit |
534379 |
sprintf(eight, "%d", platform_.devices[0].function);
|
|
Packit |
534379 |
strcpy(nine, "-S");
|
|
Packit |
534379 |
sprintf(ten, "%d", platform_.devices[0].socket_id);
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char *argv[] = { zero, one, two, three, four,
|
|
Packit |
534379 |
five, six, seven, eight, nine,
|
|
Packit |
534379 |
ten };
|
|
Packit |
534379 |
|
|
Packit |
534379 |
EXPECT_EQ(userclk_main(11, argv), FPGA_INVALID_PARAM);
|
|
Packit |
534379 |
}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
INSTANTIATE_TEST_CASE_P(userclk_c, userclk_c_hw_p,
|
|
Packit |
534379 |
::testing::ValuesIn(test_platform::hw_platforms({"skx-p","dcp-rc"})));
|
|
Packit |
534379 |
|
|
Packit |
534379 |
|
|
Packit |
534379 |
class userclk_c_mock_p : public userclk_c_p{
|
|
Packit |
534379 |
protected:
|
|
Packit |
534379 |
userclk_c_mock_p() {};
|
|
Packit |
534379 |
};
|
|
Packit |
534379 |
|
|
Packit |
534379 |
/**
|
|
Packit |
534379 |
* @test main3
|
|
Packit |
534379 |
* @brief Test: userclk_main
|
|
Packit |
534379 |
* @details When given valid command parameters that identify an accelerator,
|
|
Packit |
534379 |
* if --freq-low is not given,
|
|
Packit |
534379 |
* then low is calculated from high,
|
|
Packit |
534379 |
* and the fn returns zero.
|
|
Packit |
534379 |
*/
|
|
Packit |
534379 |
TEST_P(userclk_c_mock_p, main3) {
|
|
Packit |
534379 |
char zero[20];
|
|
Packit |
534379 |
char one[20];
|
|
Packit |
534379 |
char two[20];
|
|
Packit |
534379 |
char three[20];
|
|
Packit |
534379 |
char four[20];
|
|
Packit |
534379 |
char five[20];
|
|
Packit |
534379 |
char six[20];
|
|
Packit |
534379 |
char seven[20];
|
|
Packit |
534379 |
char eight[20];
|
|
Packit |
534379 |
char nine[20];
|
|
Packit |
534379 |
char ten[20];
|
|
Packit |
534379 |
char eleven[20];
|
|
Packit |
534379 |
char twelve[20];
|
|
Packit |
534379 |
strcpy(zero, "userclk");
|
|
Packit |
534379 |
strcpy(one, "--segment");
|
|
Packit |
534379 |
sprintf(two, "%d", platform_.devices[0].segment);
|
|
Packit |
534379 |
strcpy(three, "-B");
|
|
Packit |
534379 |
sprintf(four, "%d", platform_.devices[0].bus);
|
|
Packit |
534379 |
strcpy(five, "-D");
|
|
Packit |
534379 |
sprintf(six, "%d", platform_.devices[0].device);
|
|
Packit |
534379 |
strcpy(seven, "-F");
|
|
Packit |
534379 |
sprintf(eight, "%d", platform_.devices[0].function);
|
|
Packit |
534379 |
strcpy(nine, "-S");
|
|
Packit |
534379 |
sprintf(ten, "%d", platform_.devices[0].socket_id);
|
|
Packit |
534379 |
strcpy(eleven, "-H");
|
|
Packit |
534379 |
strcpy(twelve, "400");
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char *argv[] = { zero, one, two, three, four,
|
|
Packit |
534379 |
five, six, seven, eight, nine,
|
|
Packit |
534379 |
ten, eleven, twelve };
|
|
Packit |
534379 |
|
|
Packit |
534379 |
/*
|
|
Packit |
534379 |
** FIXME: main should return zero in this case, but
|
|
Packit |
534379 |
** the user clocks API polls on a sysfs file with a
|
|
Packit |
534379 |
** timeout. Because the sysfs file never updates in
|
|
Packit |
534379 |
** a mock environment, the API will time out and return
|
|
Packit |
534379 |
** FPGA_NOT_SUPPORTED.
|
|
Packit |
534379 |
EXPECT_EQ(userclk_main(13, argv), 0);
|
|
Packit |
534379 |
*/
|
|
Packit |
534379 |
EXPECT_EQ(userclk_main(13, argv), FPGA_NOT_SUPPORTED);
|
|
Packit |
534379 |
}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
/**
|
|
Packit |
534379 |
* @test main4
|
|
Packit |
534379 |
* @brief Test: userclk_main
|
|
Packit |
534379 |
* @details When given valid command parameters that identify an accelerator,
|
|
Packit |
534379 |
* if --freq-high is not given,
|
|
Packit |
534379 |
* then high is calculated from low,
|
|
Packit |
534379 |
* and the fn returns zero.
|
|
Packit |
534379 |
*/
|
|
Packit |
534379 |
TEST_P(userclk_c_mock_p, main4) {
|
|
Packit |
534379 |
char zero[20];
|
|
Packit |
534379 |
char one[20];
|
|
Packit |
534379 |
char two[20];
|
|
Packit |
534379 |
char three[20];
|
|
Packit |
534379 |
char four[20];
|
|
Packit |
534379 |
char five[20];
|
|
Packit |
534379 |
char six[20];
|
|
Packit |
534379 |
char seven[20];
|
|
Packit |
534379 |
char eight[20];
|
|
Packit |
534379 |
char nine[20];
|
|
Packit |
534379 |
char ten[20];
|
|
Packit |
534379 |
char eleven[20];
|
|
Packit |
534379 |
char twelve[20];
|
|
Packit |
534379 |
strcpy(zero, "userclk");
|
|
Packit |
534379 |
strcpy(one, "--segment");
|
|
Packit |
534379 |
sprintf(two, "%d", platform_.devices[0].segment);
|
|
Packit |
534379 |
strcpy(three, "-B");
|
|
Packit |
534379 |
sprintf(four, "%d", platform_.devices[0].bus);
|
|
Packit |
534379 |
strcpy(five, "-D");
|
|
Packit |
534379 |
sprintf(six, "%d", platform_.devices[0].device);
|
|
Packit |
534379 |
strcpy(seven, "-F");
|
|
Packit |
534379 |
sprintf(eight, "%d", platform_.devices[0].function);
|
|
Packit |
534379 |
strcpy(nine, "-S");
|
|
Packit |
534379 |
sprintf(ten, "%d", platform_.devices[0].socket_id);
|
|
Packit |
534379 |
strcpy(eleven, "-L");
|
|
Packit |
534379 |
strcpy(twelve, "200");
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char *argv[] = { zero, one, two, three, four,
|
|
Packit |
534379 |
five, six, seven, eight, nine,
|
|
Packit |
534379 |
ten, eleven, twelve };
|
|
Packit |
534379 |
|
|
Packit |
534379 |
/*
|
|
Packit |
534379 |
** FIXME: main should return zero in this case, but
|
|
Packit |
534379 |
** the user clocks API polls on a sysfs file with a
|
|
Packit |
534379 |
** timeout. Because the sysfs file never updates in
|
|
Packit |
534379 |
** a mock environment, the API will time out and return
|
|
Packit |
534379 |
** FPGA_NOT_SUPPORTED.
|
|
Packit |
534379 |
EXPECT_EQ(userclk_main(13, argv), 0);
|
|
Packit |
534379 |
*/
|
|
Packit |
534379 |
EXPECT_EQ(userclk_main(13, argv), FPGA_NOT_SUPPORTED);
|
|
Packit |
534379 |
}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
/**
|
|
Packit |
534379 |
* @test main5
|
|
Packit |
534379 |
* @brief Test: userclk_main
|
|
Packit |
534379 |
* @details When given valid command parameters that identify an accelerator,
|
|
Packit |
534379 |
* if both --freq-high (-H) and --freq-low (-L) are given,
|
|
Packit |
534379 |
* then high must equal 2 * low,
|
|
Packit |
534379 |
* or else the fn returns FPGA_INVALID_PARAM.
|
|
Packit |
534379 |
*/
|
|
Packit |
534379 |
TEST_P(userclk_c_mock_p, main5) {
|
|
Packit |
534379 |
char zero[20];
|
|
Packit |
534379 |
char one[20];
|
|
Packit |
534379 |
char two[20];
|
|
Packit |
534379 |
char three[20];
|
|
Packit |
534379 |
char four[20];
|
|
Packit |
534379 |
char five[20];
|
|
Packit |
534379 |
char six[20];
|
|
Packit |
534379 |
char seven[20];
|
|
Packit |
534379 |
char eight[20];
|
|
Packit |
534379 |
char nine[20];
|
|
Packit |
534379 |
char ten[20];
|
|
Packit |
534379 |
char eleven[20];
|
|
Packit |
534379 |
char twelve[20];
|
|
Packit |
534379 |
char thirteen[20];
|
|
Packit |
534379 |
char fourteen[20];
|
|
Packit |
534379 |
strcpy(zero, "userclk");
|
|
Packit |
534379 |
strcpy(one, "--segment");
|
|
Packit |
534379 |
sprintf(two, "%d", platform_.devices[0].segment);
|
|
Packit |
534379 |
strcpy(three, "-B");
|
|
Packit |
534379 |
sprintf(four, "%d", platform_.devices[0].bus);
|
|
Packit |
534379 |
strcpy(five, "-D");
|
|
Packit |
534379 |
sprintf(six, "%d", platform_.devices[0].device);
|
|
Packit |
534379 |
strcpy(seven, "-F");
|
|
Packit |
534379 |
sprintf(eight, "%d", platform_.devices[0].function);
|
|
Packit |
534379 |
strcpy(nine, "-S");
|
|
Packit |
534379 |
sprintf(ten, "%d", platform_.devices[0].socket_id);
|
|
Packit |
534379 |
strcpy(eleven, "-H");
|
|
Packit |
534379 |
strcpy(twelve, "300");
|
|
Packit |
534379 |
strcpy(thirteen, "-L");
|
|
Packit |
534379 |
strcpy(fourteen, "100");
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char *argv[] = { zero, one, two, three, four,
|
|
Packit |
534379 |
five, six, seven, eight, nine,
|
|
Packit |
534379 |
ten, eleven, twelve, thirteen, fourteen };
|
|
Packit |
534379 |
|
|
Packit |
534379 |
EXPECT_EQ(userclk_main(15, argv), FPGA_INVALID_PARAM);
|
|
Packit |
534379 |
}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
/**
|
|
Packit |
534379 |
* @test main6
|
|
Packit |
534379 |
* @brief Test: userclk_main
|
|
Packit |
534379 |
* @details When given valid command parameters that identify an accelerator,
|
|
Packit |
534379 |
* if neither --freq-high (-H) nor --freq-low (-L) is given,
|
|
Packit |
534379 |
* then the function prints an error
|
|
Packit |
534379 |
* and returns FPGA_INVALID_PARAM.
|
|
Packit |
534379 |
*/
|
|
Packit |
534379 |
TEST_P(userclk_c_mock_p, main6) {
|
|
Packit |
534379 |
char zero[20];
|
|
Packit |
534379 |
char one[20];
|
|
Packit |
534379 |
char two[20];
|
|
Packit |
534379 |
char three[20];
|
|
Packit |
534379 |
char four[20];
|
|
Packit |
534379 |
char five[20];
|
|
Packit |
534379 |
char six[20];
|
|
Packit |
534379 |
char seven[20];
|
|
Packit |
534379 |
char eight[20];
|
|
Packit |
534379 |
char nine[20];
|
|
Packit |
534379 |
char ten[20];
|
|
Packit |
534379 |
strcpy(zero, "userclk");
|
|
Packit |
534379 |
strcpy(one, "--segment");
|
|
Packit |
534379 |
sprintf(two, "%d", platform_.devices[0].segment);
|
|
Packit |
534379 |
strcpy(three, "-B");
|
|
Packit |
534379 |
sprintf(four, "%d", platform_.devices[0].bus);
|
|
Packit |
534379 |
strcpy(five, "-D");
|
|
Packit |
534379 |
sprintf(six, "%d", platform_.devices[0].device);
|
|
Packit |
534379 |
strcpy(seven, "-F");
|
|
Packit |
534379 |
sprintf(eight, "%d", platform_.devices[0].function);
|
|
Packit |
534379 |
strcpy(nine, "-S");
|
|
Packit |
534379 |
sprintf(ten, "%d", platform_.devices[0].socket_id);
|
|
Packit |
534379 |
|
|
Packit |
534379 |
char *argv[] = { zero, one, two, three, four,
|
|
Packit |
534379 |
five, six, seven, eight, nine,
|
|
Packit |
534379 |
ten };
|
|
Packit |
534379 |
|
|
Packit |
534379 |
EXPECT_EQ(userclk_main(11, argv), FPGA_INVALID_PARAM);
|
|
Packit |
534379 |
}
|
|
Packit |
534379 |
|
|
Packit |
534379 |
INSTANTIATE_TEST_CASE_P(userclk_c, userclk_c_mock_p,
|
|
Packit |
534379 |
::testing::ValuesIn(test_platform::mock_platforms({"skx-p", "dcp-rc"})));
|
|
Packit |
534379 |
|
|
Packit |
534379 |
|