]> git.saurik.com Git - apt.git/blobdiff - test/versiontest.cc
fix "apt-get source pkg" if there is a binary package and
[apt.git] / test / versiontest.cc
index 3f90adf05ef36e934309143ed4bca8054c2afca3..5438eb4de035e1ad9883bf87a3d29bc25c14b816 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: versiontest.cc,v 1.3 2002/03/26 07:38:58 jgg Exp $
+// $Id: versiontest.cc,v 1.5 2003/08/18 15:55:19 mdz Exp $
 /* ######################################################################
 
    Version Test - Simple program to run through a file and comare versions.
    
    ##################################################################### */
                                                                        /*}}}*/
-#define APT_COMPATIBILITY 1
 #include <system.h>
 #include <apt-pkg/error.h>
 #include <apt-pkg/version.h>
+#include <apt-pkg/debversion.h>
 #include <iostream>
 #include <fstream>
 
+using namespace std;
+
   static int verrevcmp(const char *val, const char *ref) 
 {
    int vc, rc;
@@ -132,7 +134,7 @@ static int verrevcmp(const char *val, const char *ref)
     
 bool RunTest(const char *File)
 {
-   ifstream F(File,ios::in | ios::nocreate);
+   ifstream F(File,ios::in);
    if (!F != 0)
       return false;
 
@@ -173,19 +175,32 @@ bool RunTest(const char *File)
       // Result
       I++;
       int Expected = atoi(I);
-      int Res = pkgVersionCompare(A.c_str(),B.c_str());
+      int Res = debVS.CmpVersion(A.c_str(), B.c_str());
       int Res2 = verrevcmp(A.c_str(),B.c_str());
       cout << "'" << A << "' ? '" << B << "' = " << Res << " (= " << Expected << ") " << Res2 << endl;
+
+      if (Res < 0)
+           Res = -1;
+      else if (Res > 0)
+           Res = 1;
+
       if (Res != Expected)
         _error->Error("Comparison failed on line %u. '%s' ? '%s' %i != %i",CurLine,A.c_str(),B.c_str(),Res,Expected);
 
       // Check the reverse as well
       Expected = -1*Expected;
-      Res = pkgVersionCompare(B.c_str(),A.c_str());
+      Res = debVS.CmpVersion(B.c_str(), A.c_str());
       Res2 = verrevcmp(B.c_str(),A.c_str());
+
       cout << "'" << B << "' ? '" << A << "' = " << Res << " (= " << Expected << ") " << Res2 << endl;
+
+      if (Res < 0)
+           Res = -1;
+      else if (Res > 0)
+           Res = 1;
+
       if (Res != Expected)
-        _error->Error("Comparison failed on line %u. '%s' ? '%s' %i != %i",CurLine,A.c_str(),B.c_str(),Res,Expected);
+        _error->Error("Comparison failed on line %u. '%s' ? '%s' %i != %i",CurLine,B.c_str(),A.c_str(),Res,Expected);
    }
 }