diff options
Diffstat (limited to 'gentoobrowse-api/unittests/testProcessAll.cpp')
-rw-r--r-- | gentoobrowse-api/unittests/testProcessAll.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/gentoobrowse-api/unittests/testProcessAll.cpp b/gentoobrowse-api/unittests/testProcessAll.cpp new file mode 100644 index 0000000..cd72a8c --- /dev/null +++ b/gentoobrowse-api/unittests/testProcessAll.cpp @@ -0,0 +1,37 @@ +#define BOOST_TEST_MODULE TestProcessAll +#include <boost/test/unit_test.hpp> +#include <boost/test/data/test_case.hpp> + +#include <depend.h> +#include <utils/ebuildCacheParser.h> +#include <boost/filesystem/path.hpp> +#include <boost/filesystem/convenience.hpp> + +void +testDependRange(const std::optional<std::string_view> & r) +{ + if (r) { + Portage::Utils::Depend::parse(*r); + } +} + +auto +getFileList(const boost::filesystem::path & root, bool(*pred)(const boost::filesystem::path &)) +{ + std::vector<boost::filesystem::path> paths; + std::copy_if(boost::filesystem::recursive_directory_iterator(root), + boost::filesystem::recursive_directory_iterator(), + std::back_inserter(paths), pred); + return paths; +} + +BOOST_DATA_TEST_CASE( ebuildCacheDependencies, boost::unit_test::data::make( + getFileList("/usr/portage/metadata/md5-cache", boost::filesystem::is_regular_file)), + path ) +{ + Gentoo::Utils::EbuildCacheParser ecp(path); + testDependRange(ecp.getRange("DEPEND")); + testDependRange(ecp.getRange("RDEPEND")); + testDependRange(ecp.getRange("PDEPEND")); +} + |