10 #include "zypp/base/Logger.h"
11 #include "zypp/Arch.h"
14 #include <boost/test/auto_unit_test.hpp>
16 using boost::unit_test::test_suite;
17 using boost::unit_test::test_case;
22 /******************************************************************
25 ** FUNCTION NAME : main
26 ** FUNCTION TYPE : int
30 BOOST_AUTO_TEST_CASE(arch_test)
32 //////////////////////////////////////////////////////////////////////
34 //////////////////////////////////////////////////////////////////////
35 BOOST_REQUIRE( Arch() == Arch_noarch );
36 BOOST_REQUIRE( Arch("") == Arch_empty );
37 BOOST_REQUIRE( ! Arch_noarch.empty() );
38 BOOST_REQUIRE( Arch_empty.empty() );
39 BOOST_REQUIRE( Arch_noarch.isBuiltIn() );
40 BOOST_REQUIRE( ! Arch_empty.isBuiltIn() );
41 BOOST_REQUIRE( Arch_empty != Arch_noarch );
42 //////////////////////////////////////////////////////////////////////
44 //////////////////////////////////////////////////////////////////////
45 BOOST_CHECK_EQUAL( Arch("i386"), Arch_i386 );
46 BOOST_CHECK_EQUAL( Arch("i386").idStr(), "i386" );
47 BOOST_CHECK_EQUAL( Arch("i386").asString(), "i386" );
48 BOOST_REQUIRE( Arch_i386.isBuiltIn() );
50 BOOST_CHECK_EQUAL( Arch("FOO").idStr(), "FOO" );
51 BOOST_CHECK_EQUAL( Arch("FOO").asString(), "FOO" );
52 BOOST_REQUIRE( ! Arch("FOO").isBuiltIn() );
53 //////////////////////////////////////////////////////////////////////
55 //////////////////////////////////////////////////////////////////////
56 BOOST_REQUIRE( Arch_noarch.compatibleWith( Arch_noarch ) );
57 BOOST_REQUIRE( Arch_noarch.compatibleWith( Arch_i386 ) );
58 BOOST_REQUIRE( Arch_noarch.compatibleWith( Arch_x86_64 ) );
60 BOOST_REQUIRE( ! Arch_i386.compatibleWith( Arch_noarch ) );
61 BOOST_REQUIRE( Arch_i386.compatibleWith( Arch_i386 ) );
62 BOOST_REQUIRE( Arch_i386.compatibleWith( Arch_x86_64 ) );
64 BOOST_REQUIRE( ! Arch_x86_64.compatibleWith( Arch_noarch ) );
65 BOOST_REQUIRE( ! Arch_x86_64.compatibleWith( Arch_i386 ) );
66 BOOST_REQUIRE( Arch_x86_64.compatibleWith( Arch_x86_64 ) );
67 //////////////////////////////////////////////////////////////////////
69 //////////////////////////////////////////////////////////////////////
70 BOOST_CHECK_EQUAL( Arch::baseArch( Arch_x86_64 ), Arch_x86_64 );
71 BOOST_CHECK_EQUAL( Arch::baseArch( Arch_i686 ), Arch_i386 );
72 //////////////////////////////////////////////////////////////////////
74 //////////////////////////////////////////////////////////////////////
75 BOOST_REQUIRE( Arch_i386.compare( Arch_noarch ) > 0 );
76 BOOST_REQUIRE( Arch_i386.compare( Arch_i386 ) == 0 );
77 BOOST_REQUIRE( Arch_i386.compare( Arch_x86_64 ) < 0 );