10 #include "zypp/base/Logger.h"
11 #include "zypp/Arch.h"
14 #include <boost/test/floating_point_comparison.hpp>
15 #include <boost/test/auto_unit_test.hpp>
17 using boost::unit_test::test_suite;
18 using boost::unit_test::test_case;
19 using boost::test_tools::close_at_tolerance;
24 /******************************************************************
27 ** FUNCTION NAME : main
28 ** FUNCTION TYPE : int
32 BOOST_AUTO_TEST_CASE(arch_test)
34 //////////////////////////////////////////////////////////////////////
36 //////////////////////////////////////////////////////////////////////
37 BOOST_REQUIRE( Arch() == Arch_noarch );
38 BOOST_REQUIRE( Arch("") == Arch_empty );
39 BOOST_REQUIRE( ! Arch_noarch.empty() );
40 BOOST_REQUIRE( Arch_empty.empty() );
41 BOOST_REQUIRE( Arch_noarch.isBuiltIn() );
42 BOOST_REQUIRE( ! Arch_empty.isBuiltIn() );
43 BOOST_REQUIRE( Arch_empty != Arch_noarch );
44 //////////////////////////////////////////////////////////////////////
46 //////////////////////////////////////////////////////////////////////
47 BOOST_CHECK_EQUAL( Arch("i386"), Arch_i386 );
48 BOOST_CHECK_EQUAL( Arch("i386").idStr(), "i386" );
49 BOOST_CHECK_EQUAL( Arch("i386").asString(), "i386" );
50 BOOST_REQUIRE( Arch_i386.isBuiltIn() );
52 BOOST_CHECK_EQUAL( Arch("FOO").idStr(), "FOO" );
53 BOOST_CHECK_EQUAL( Arch("FOO").asString(), "FOO" );
54 BOOST_REQUIRE( ! Arch("FOO").isBuiltIn() );
55 //////////////////////////////////////////////////////////////////////
57 //////////////////////////////////////////////////////////////////////
58 BOOST_REQUIRE( Arch_noarch.compatibleWith( Arch_noarch ) );
59 BOOST_REQUIRE( Arch_noarch.compatibleWith( Arch_i386 ) );
60 BOOST_REQUIRE( Arch_noarch.compatibleWith( Arch_x86_64 ) );
62 BOOST_REQUIRE( ! Arch_i386.compatibleWith( Arch_noarch ) );
63 BOOST_REQUIRE( Arch_i386.compatibleWith( Arch_i386 ) );
64 BOOST_REQUIRE( Arch_i386.compatibleWith( Arch_x86_64 ) );
66 BOOST_REQUIRE( ! Arch_x86_64.compatibleWith( Arch_noarch ) );
67 BOOST_REQUIRE( ! Arch_x86_64.compatibleWith( Arch_i386 ) );
68 BOOST_REQUIRE( Arch_x86_64.compatibleWith( Arch_x86_64 ) );
69 //////////////////////////////////////////////////////////////////////
71 //////////////////////////////////////////////////////////////////////
72 BOOST_CHECK_EQUAL( Arch::baseArch( Arch_x86_64 ), Arch_x86_64 );
73 BOOST_CHECK_EQUAL( Arch::baseArch( Arch_i686 ), Arch_i386 );
74 //////////////////////////////////////////////////////////////////////
76 //////////////////////////////////////////////////////////////////////
77 BOOST_REQUIRE( Arch_i386.compare( Arch_noarch ) > 0 );
78 BOOST_REQUIRE( Arch_i386.compare( Arch_i386 ) == 0 );
79 BOOST_REQUIRE( Arch_i386.compare( Arch_x86_64 ) < 0 );