diff options
-rw-r--r-- | gentoobrowse-api/service/depend.cpp | 2 | ||||
-rw-r--r-- | gentoobrowse-api/unittests/testDepend.cpp | 11 | ||||
-rw-r--r-- | gentoobrowse-api/unittests/testProcessAll.cpp | 6 |
3 files changed, 15 insertions, 4 deletions
diff --git a/gentoobrowse-api/service/depend.cpp b/gentoobrowse-api/service/depend.cpp index e2ce15e..37f09e5 100644 --- a/gentoobrowse-api/service/depend.cpp +++ b/gentoobrowse-api/service/depend.cpp @@ -19,7 +19,7 @@ namespace Portage::Utils { AdHoc::Lexer::PatternPtr AtomSpec(AdHoc::LexerMatchers::regex( "\\s*" "([[:punct:]]+)?" // op - "([[:alnum:]-]+)\\/" // cat + "([[:alnum:]-_]+)\\/" // cat "([^ ]+)" // package "(-([0-9][.0-9]*[[:alpha:]]?\\*?((_(alpha|beta|pre|rc|p))?[[:digit:]]*)*(-r[[:digit:]]+)?))?" // version "(:([^/ []+(\\/[^ []+)?))?" // slot diff --git a/gentoobrowse-api/unittests/testDepend.cpp b/gentoobrowse-api/unittests/testDepend.cpp index 0ac212b..a02c87a 100644 --- a/gentoobrowse-api/unittests/testDepend.cpp +++ b/gentoobrowse-api/unittests/testDepend.cpp @@ -282,6 +282,17 @@ BOOST_AUTO_TEST_CASE(freeciv) BOOST_REQUIRE_EQUAL(ds.size(), 27); } +BOOST_AUTO_TEST_CASE(wine_staging) +{ + auto ds = Portage::Utils::Depend::parse( + "mingw? ( " + "!!>=cross-i686-w64-mingw32/binutils-2.38 !!>=cross-x86_64-w64-mingw32/binutils-2.38 ) mono? ( " + "app-emulation/wine-mono:7.1.1 ) perl? ( dev-lang/perl dev-perl/XML-Simple ) pulseaudio? ( realtime? ( " + "sys-auth/rtkit ) ) samba? ( >=net-fs/samba-3.0.25[winbind] ) selinux? ( sec-policy/selinux-wine ) udisks? " + "( sys-fs/udisks:2 )"); + BOOST_REQUIRE_EQUAL(ds.size(), 9); +} + BOOST_AUTO_TEST_CASE(useWithAtSymble) { auto ds = Portage::Utils::Depend::parse("some@thing? ( app-arch/bzip2 )"); diff --git a/gentoobrowse-api/unittests/testProcessAll.cpp b/gentoobrowse-api/unittests/testProcessAll.cpp index 1074018..8b4d2a9 100644 --- a/gentoobrowse-api/unittests/testProcessAll.cpp +++ b/gentoobrowse-api/unittests/testProcessAll.cpp @@ -39,9 +39,9 @@ BOOST_DATA_TEST_CASE(ebuildCacheDependencies, path) { Gentoo::Utils::EbuildCacheParser ecp(path); - testDependRange(ecp.getRange("DEPEND")); - testDependRange(ecp.getRange("RDEPEND")); - testDependRange(ecp.getRange("PDEPEND")); + BOOST_CHECK_NO_THROW(testDependRange(ecp.getRange("DEPEND"))); + BOOST_CHECK_NO_THROW(testDependRange(ecp.getRange("RDEPEND"))); + BOOST_CHECK_NO_THROW(testDependRange(ecp.getRange("PDEPEND"))); } BOOST_DATA_TEST_CASE(news, |