7 #include <boost/test/unit_test.hpp>
9 #include <zypp/base/LogControl.h>
10 #include <zypp/base/Logger.h>
11 #include <zypp/base/Exception.h>
12 #include <zypp/VendorAttr.h>
14 using boost::unit_test::test_case;
19 #define DATADIR (Pathname(TESTS_SRC_DIR) + "/zypp/data/Vendor")
21 BOOST_AUTO_TEST_CASE(vendor_empty)
23 VendorAttr::noTargetInstance() = VendorAttr(); // suse defaults; no configfiles read
25 BOOST_REQUIRE( VendorAttr::instance().equivalent("", "") );
26 BOOST_REQUIRE( !VendorAttr::instance().equivalent("a", "") );
27 BOOST_REQUIRE( !VendorAttr::instance().equivalent("", "a") );
28 BOOST_REQUIRE( VendorAttr::instance().equivalent("a", "a") );
29 BOOST_REQUIRE( !VendorAttr::instance().equivalent("a", "aa") );
30 BOOST_REQUIRE( !VendorAttr::instance().equivalent("aa", "a") );
32 BOOST_REQUIRE( VendorAttr::instance().equivalent( IdString::Null, IdString::Null ) );
33 BOOST_REQUIRE( VendorAttr::instance().equivalent( IdString::Empty, IdString::Null ) );
34 BOOST_REQUIRE( VendorAttr::instance().equivalent( IdString::Null, IdString::Empty ) );
35 BOOST_REQUIRE( VendorAttr::instance().equivalent( IdString::Empty, IdString::Empty ) );
38 BOOST_AUTO_TEST_CASE(vendor_test1)
41 VendorAttr::noTargetInstance() = VendorAttr(); // suse defaults; no configfiles read
42 // bsc#1030686: Remove legacy vendor equivalence between 'suse' and 'opensuse'
43 // No vendor definition files has been read. So only suse* vendors are
45 BOOST_REQUIRE( VendorAttr::instance().equivalent("suse", "SuSE as prefix") );
46 BOOST_REQUIRE( VendorAttr::instance().equivalent("SuSE as prefix", "suse") );
47 BOOST_REQUIRE( !VendorAttr::instance().equivalent("SuSE as prefix","foreign") );
48 // bnc#812608: All opensuse projects get their own class (no prefix compare in opensuse namespace)
49 BOOST_REQUIRE( !VendorAttr::instance().equivalent("opensuse", "SuSE as prefix") );
50 BOOST_REQUIRE( !VendorAttr::instance().equivalent("opensuse as prefix", "SuSE as prefix") );
51 BOOST_REQUIRE( !VendorAttr::instance().equivalent("opensuse", "opensuse as prefix") );
52 BOOST_REQUIRE( !VendorAttr::instance().equivalent("opensuse as prefix", "opensuse but different prefix") );
55 BOOST_AUTO_TEST_CASE(vendor_test2)
57 VendorAttr::noTargetInstance() = VendorAttr( DATADIR / "vendors.d" );
59 BOOST_REQUIRE( VendorAttr::instance().equivalent("suse", "suse") );
60 BOOST_REQUIRE( VendorAttr::instance().equivalent("equal", "equal") );
61 BOOST_REQUIRE( VendorAttr::instance().equivalent("suse", "SuSE") );
62 BOOST_REQUIRE( !VendorAttr::instance().equivalent("opensuse", "SuSE") );
63 BOOST_REQUIRE( !VendorAttr::instance().equivalent("open", "SuSE") );
64 BOOST_REQUIRE( !VendorAttr::instance().equivalent("nothing", "SuSE") );
65 BOOST_REQUIRE( VendorAttr::instance().equivalent("nvidia", "SuSE") );
66 BOOST_REQUIRE( VendorAttr::instance().equivalent("nvidia_new_new", "SuSE") );
67 BOOST_REQUIRE( !VendorAttr::instance().equivalent("nvidia", "opensuse") );
68 BOOST_REQUIRE( !VendorAttr::instance().equivalent("ati", "SuSE") );
69 BOOST_REQUIRE( !VendorAttr::instance().equivalent("ati", "nvidia") );
70 BOOST_REQUIRE( VendorAttr::instance().equivalent("ati_new", "ati") );
73 BOOST_AUTO_TEST_CASE(vendor_test3)
75 VendorAttr::noTargetInstance() = VendorAttr(); // suse defaults; no configfiles read
76 VendorAttr::noTargetInstance().addVendorList( { "suse", "opensuse", "opensuse too" } );
78 BOOST_REQUIRE( VendorAttr::instance().equivalent("SuSE as prefix", "opensuse") );
79 BOOST_REQUIRE( VendorAttr::instance().equivalent("SuSE as prefix", "opensuse too") );
80 BOOST_REQUIRE( VendorAttr::instance().equivalent("opensuse", "opensuse too") );
81 // bnc#812608: All opensuse projects get their own class (no prefix compare in opensuse namespace)
82 BOOST_REQUIRE( !VendorAttr::instance().equivalent("SuSE as prefix", "opensuse as prefix") );
83 BOOST_REQUIRE( !VendorAttr::instance().equivalent("SuSE as prefix", "opensuse too as prefix") );
84 BOOST_REQUIRE( !VendorAttr::instance().equivalent("opensuse", "opensuse too as prefix") );
85 BOOST_REQUIRE( !VendorAttr::instance().equivalent("opensuse as prefix", "opensuse too") );
86 BOOST_REQUIRE( !VendorAttr::instance().equivalent("opensuse as prefix", "opensuse too as prefix") );