Imported Upstream version 17.22.1
[platform/upstream/libzypp.git] / tests / zypp / Arch_test.cc
1 // Arch.cc
2 //
3 // tests for Arch
4 //
5
6 #include <iostream>
7 #include <list>
8 #include <string>
9
10 #include "zypp/base/Logger.h"
11 #include "zypp/Arch.h"
12
13 // Boost.Test
14 #include <boost/test/unit_test.hpp>
15
16 using boost::unit_test::test_suite;
17 using boost::unit_test::test_case;
18
19 using namespace std;
20 using namespace zypp;
21
22 /******************************************************************
23 **
24 **
25 **      FUNCTION NAME : main
26 **      FUNCTION TYPE : int
27 **
28 **      DESCRIPTION :
29 */
30 BOOST_AUTO_TEST_CASE(arch_test)
31 {
32   //////////////////////////////////////////////////////////////////////
33   //
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   //////////////////////////////////////////////////////////////////////
43   //
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() );
49
50   BOOST_CHECK_EQUAL( Arch("FOO").idStr(), "FOO" );
51   BOOST_CHECK_EQUAL( Arch("FOO").asString(), "FOO" );
52   BOOST_REQUIRE( ! Arch("FOO").isBuiltIn() );
53   //////////////////////////////////////////////////////////////////////
54   //
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 ) );
59
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 ) );
63
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   //////////////////////////////////////////////////////////////////////
68   //
69   //////////////////////////////////////////////////////////////////////
70   BOOST_CHECK_EQUAL( Arch::baseArch( Arch_x86_64 ), Arch_x86_64 );
71   BOOST_CHECK_EQUAL( Arch::baseArch( Arch_i686 ), Arch_i386 );
72   //////////////////////////////////////////////////////////////////////
73   //
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 );
78 }