LTP GCOV extension - code coverage report
Current view: | directory - ept/apt - version.test.h
Test: | lcov.info
Date: | 2008-08-14 |  | Instrumented lines: | 71
Code covered: | 100.0 % |  | Executed lines: | 71

           1                 : /*
           2                 :  * Copyright (C) 2007  Enrico Zini <enrico@enricozini.org>
           3                 :  *
           4                 :  * This library is free software; you can redistribute it and/or
           5                 :  * modify it under the terms of the GNU Lesser General Public
           6                 :  * License as published by the Free Software Foundation; either
           7                 :  * version 2.1 of the License, or (at your option) any later version.
           8                 :  *
           9                 :  * This library is distributed in the hope that it will be useful,
          10                 :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
          11                 :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
          12                 :  * Lesser General Public License for more details.
          13                 :  *
          14                 :  * You should have received a copy of the GNU Lesser General Public
          15                 :  * License along with this library; if not, write to the Free Software
          16                 :  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
          17                 :  */
          18                 :
          19                 : #include <ept/test.h>
          20                 : #include <ept/apt/version.h>
          21                 :
          22                 : using namespace std;
          23                 : using namespace ept::apt;
          24                 :
          25                 : struct TestAptVersion {
          26                 :
          27                 :     // Basic test for invalid version
          28               1 :     Test invalid()
          29                 :     {
          30               1 :         Version test;
          31                 :
          32               1 :         assert_eq(test.name(), "");
          33               1 :         assert_eq(test.version(), "");
          34               1 :         assert_eq(test.isValid(), false);
          35                 :
          36               1 :         string p = test.name();
          37                 :
          38               1 :         assert_eq(p, string());
          39               1 :     }
          40                 :
          41                 :     // Basic test for version
          42               1 :     Test basic()
          43                 :     {
          44               1 :         Version test("test", "1.0");
          45                 :
          46               2 :         assert_eq(test.name(), "test");
          47               1 :         assert_eq(test.version(), "1.0");
          48               1 :         assert_eq(test.isValid(), true);
          49                 :
          50               1 :         string p = test.name();
          51                 :
          52               1 :         assert_eq(p, "test");
          53                 :
          54               1 :         Version v(p, "1.1");
          55               2 :         assert_eq(v.name(), "test");
          56               1 :         assert_eq(v.version(), "1.1");
          57               1 :         assert_eq(v.isValid(), true);
          58               1 :     }
          59                 :
          60                 :     // Comparison semanthics
          61               1 :     Test comparison()
          62                 :     {
          63               1 :         Version test("test", "1.0");
          64               2 :         Version test1("test", "1.0");
          65                 :
          66               2 :         assert(test == test1);
          67               2 :         assert(! (test != test1));
          68               2 :         assert(! (test < test1));
          69               2 :         assert(! (test > test1));
          70               2 :         assert(test <= test1);
          71               2 :         assert(test >= test1);
          72                 :
          73                 :
          74               2 :         Version test2("test2", "1.0");
          75                 :
          76               2 :         assert(test != test2);
          77               2 :         assert(test != test2);
          78               2 :         assert(test < test2);
          79               2 :         assert(! (test > test2));
          80               2 :         assert(test <= test2);
          81               2 :         assert(! (test >= test2));
          82                 :
          83                 :
          84               2 :         Version test3("test", "2.0");
          85                 :
          86               2 :         assert(test != test3);
          87               2 :         assert(test != test3);
          88               2 :         assert(test < test3);
          89               2 :         assert(! (test > test3));
          90               2 :         assert(test <= test3);
          91               2 :         assert(! (test >= test3));
          92               1 :     }
          93                 :
          94                 :     // Value-copy semanthics
          95               1 :     Test valueCopy()
          96                 :     {
          97               1 :         Version test("test", "1.0");
          98               1 :         Version test1 = test;
          99                 :
         100               1 :         assert(test == test1);
         101                 :
         102               1 :         Version test2;
         103               1 :         test2 = test;
         104               1 :         assert(test == test2);
         105               2 :         assert(test1 == test2);
         106                 :
         107               2 :         Version test3("test", "1.0");
         108               2 :         assert(test == test3);
         109               2 :         assert(test1 == test3);
         110               2 :         assert(test2 == test3);
         111               1 :     }
         112                 :
         113                 :     // Extraction of upstream version
         114               1 :     Test upstreamVersion()
         115                 :     {
         116               1 :         assert_eq(Version("a", "10.0").upstreamVersion(), "10.0");
         117               2 :         assert_eq(Version("a", "10.0-1").upstreamVersion(), "10.0");
         118               2 :         assert_eq(Version("a", "10.0~foo.1-1.0").upstreamVersion(), "10.0~foo.1");
         119               2 :         assert_eq(Version("a", "1.0:10.0~foo.1-1.0").upstreamVersion(), "10.0~foo.1");
         120               1 :     }
         121                 :
         122                 :     // Debian policy comparison semanthics
         123               1 :     Test policyComparison()
         124                 :     {
         125               1 :         assert(Version("a", "10.0") > Version("a", "2.1"));
         126               2 :         assert(Version("a", "1:10.0") < Version("a", "2:2.1"));
         127               2 :         assert(Version("a", "10.0-1") < Version("a", "10.0-2"));
         128               2 :         assert(Version("a", "10.0-2") > Version("a", "10.0-1"));
         129               2 :         assert(Version("a", "1:10.0-1") <= Version("a", "1:10.0-1"));
         130               2 :         assert(Version("a", "1:10.0-1") >= Version("a", "1:10.0-1"));
         131                 :         // TODO: add more
         132               1 :     }
         133                 :
         134                 : };
         135                 :
         136                 : // vim:set ts=4 sw=4:

Generated by: LTP GCOV extension version 1.6