/* * Copyright (c) Advanced Micro Devices, Inc., or its affiliates. * * SPDX-License-Identifier: MIT */ #include #include #include #include /* Helper class used to store information in what file has HIP API been detected, and on what line of code in that file. */ class FileOccurrence { public: std::string file_name; int line_number; FileOccurrence(std::string file_name, int line_number); }; /* Helper class used to store information in what file has the API Test Case been detected, and on what line of code in that file. */ class TestCaseOccurrence : public FileOccurrence { friend bool operator==(const TestCaseOccurrence& l_test, const TestCaseOccurrence& r_test); friend bool operator<(const TestCaseOccurrence& l_test, const TestCaseOccurrence& r_test); public: std::string test_case_name; TestCaseOccurrence(std::string test_case_name, std::string file_name, int line_number); }; /* Class used to store infromation about each HIP API. All information is related to the API name, number of calls from test .cc files, and its status of deprecation. */ class HipAPI { friend bool operator==(const HipAPI& l_hip_api, const HipAPI& r_hip_api); friend bool operator<(const HipAPI& l_hip_api, const HipAPI& r_hip_api); public: HipAPI(std::string api_name, bool deprecated_flag, std::string api_group_name, std::string file_restriction = ""); std::string getName() const; std::string getGroupName() const; int getNumberOfCalls() const; std::vector getTestCases() const; void addFileOccurrence(FileOccurrence file_occurence); void addTestCase(TestCaseOccurrence test_case); bool isDeprecated() const; std::string getBasicStatsXML() const; std::string createHTMLReport() const; std::string getFileRestriction() const; std::vector device_groups; private: std::string api_name; std::string file_restriction; bool deprecated; std::string api_group_name; std::vector file_occurrences; std::vector test_cases; };