Imported Upstream version 14.45.0
[platform/upstream/libzypp.git] / tests / zypp / Arch_test.cc
index 075872a..db6c738 100644 (file)
@@ -12,7 +12,7 @@
 
 // Boost.Test
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/test/unit_test.hpp>
+#include <boost/test/auto_unit_test.hpp>
 
 using boost::unit_test::test_suite;
 using boost::unit_test::test_case;
@@ -29,25 +29,52 @@ using namespace zypp;
 **
 **      DESCRIPTION :
 */
-void arch_test()
+BOOST_AUTO_TEST_CASE(arch_test)
 {
-  Arch _arch32( "i386" );
-
-  BOOST_CHECK_EQUAL( _arch32, Arch_i386 );
-  BOOST_CHECK_EQUAL( _arch32.asString(), string("i386"));
-  BOOST_REQUIRE( _arch32.compatibleWith (Arch_x86_64));
-  BOOST_CHECK_THROW( Arch(NULL), exception);
-  BOOST_CHECK_EQUAL( Arch(), Arch_noarch );
-  BOOST_REQUIRE( Arch("") != Arch_noarch );
-  BOOST_REQUIRE( Arch("").empty() );
+  //////////////////////////////////////////////////////////////////////
+  //
+  //////////////////////////////////////////////////////////////////////
+  BOOST_REQUIRE( Arch()   == Arch_noarch );
+  BOOST_REQUIRE( Arch("") == Arch_empty );
   BOOST_REQUIRE( ! Arch_noarch.empty() );
-  BOOST_REQUIRE( ! ( _arch32.compare(Arch_x86_64) >= 0) );
-}
+  BOOST_REQUIRE( Arch_empty.empty() );
+  BOOST_REQUIRE( Arch_noarch.isBuiltIn() );
+  BOOST_REQUIRE( ! Arch_empty.isBuiltIn() );
+  BOOST_REQUIRE( Arch_empty != Arch_noarch );
+  //////////////////////////////////////////////////////////////////////
+  //
+  //////////////////////////////////////////////////////////////////////
+  BOOST_CHECK_EQUAL( Arch("i386"), Arch_i386 );
+  BOOST_CHECK_EQUAL( Arch("i386").idStr(), "i386" );
+  BOOST_CHECK_EQUAL( Arch("i386").asString(), "i386" );
+  BOOST_REQUIRE( Arch_i386.isBuiltIn() );
 
-test_suite*
-init_unit_test_suite( int, char* [] )
-{
-    test_suite* test= BOOST_TEST_SUITE( "ArchTest" );
-    test->add( BOOST_TEST_CASE( &arch_test ), 0 /* expected zero error */ );
-    return test;
+  BOOST_CHECK_EQUAL( Arch("FOO").idStr(), "FOO" );
+  BOOST_CHECK_EQUAL( Arch("FOO").asString(), "FOO" );
+  BOOST_REQUIRE( ! Arch("FOO").isBuiltIn() );
+  //////////////////////////////////////////////////////////////////////
+  //
+  //////////////////////////////////////////////////////////////////////
+  BOOST_REQUIRE( Arch_noarch.compatibleWith( Arch_noarch ) );
+  BOOST_REQUIRE( Arch_noarch.compatibleWith( Arch_i386 ) );
+  BOOST_REQUIRE( Arch_noarch.compatibleWith( Arch_x86_64 ) );
+
+  BOOST_REQUIRE( ! Arch_i386.compatibleWith( Arch_noarch ) );
+  BOOST_REQUIRE( Arch_i386.compatibleWith( Arch_i386 ) );
+  BOOST_REQUIRE( Arch_i386.compatibleWith( Arch_x86_64 ) );
+
+  BOOST_REQUIRE( ! Arch_x86_64.compatibleWith( Arch_noarch ) );
+  BOOST_REQUIRE( ! Arch_x86_64.compatibleWith( Arch_i386 ) );
+  BOOST_REQUIRE( Arch_x86_64.compatibleWith( Arch_x86_64 ) );
+  //////////////////////////////////////////////////////////////////////
+  //
+  //////////////////////////////////////////////////////////////////////
+  BOOST_CHECK_EQUAL( Arch::baseArch( Arch_x86_64 ), Arch_x86_64 );
+  BOOST_CHECK_EQUAL( Arch::baseArch( Arch_i686 ), Arch_i386 );
+  //////////////////////////////////////////////////////////////////////
+  //
+  //////////////////////////////////////////////////////////////////////
+  BOOST_REQUIRE( Arch_i386.compare( Arch_noarch ) >  0 );
+  BOOST_REQUIRE( Arch_i386.compare( Arch_i386 )   == 0 );
+  BOOST_REQUIRE( Arch_i386.compare( Arch_x86_64 ) <  0 );
 }