tests/test_vercmp.sh
2ba36cda
 #!/usr/bin/env bash
 
 # Tests for DevStack vercmp functionality
 
 TOP=$(cd $(dirname "$0")/.. && pwd)
 
 # Import common functions
 source $TOP/functions
 source $TOP/tests/unittest.sh
 
 assert_true "numeric gt"  vercmp 2.0 ">" 1.0
 assert_true "numeric gte" vercmp 2.0 ">=" 1.0
 assert_true "numeric gt"  vercmp 1.0.1 ">" 1.0
 assert_true "numeric gte" vercmp 1.0.1 ">=" 1.0
 assert_true "alpha gt"    vercmp 1.0.1b ">" 1.0.1a
 assert_true "alpha gte"   vercmp 1.0.1b ">=" 1.0.1a
 assert_true "alpha gt"    vercmp b ">" a
 assert_true "alpha gte"   vercmp b ">=" a
 assert_true "alpha gt"    vercmp 2.0-rc3 ">" 2.0-rc1
 assert_true "alpha gte"   vercmp 2.0-rc3 ">=" 2.0-rc1
 
 assert_false "numeric gt fail"  vercmp 1.0 ">" 1.0
 assert_true  "numeric gte"      vercmp 1.0 ">=" 1.0
 assert_false "numeric gt fail"  vercmp 0.9 ">" 1.0
 assert_false "numeric gte fail" vercmp 0.9 ">=" 1.0
 assert_false "numeric gt fail"  vercmp 0.9.9 ">" 1.0
 assert_false "numeric gte fail" vercmp 0.9.9 ">=" 1.0
 assert_false "numeric gt fail"  vercmp 0.9a.9 ">" 1.0.1
 assert_false "numeric gte fail" vercmp 0.9a.9 ">=" 1.0.1
 
 assert_false "numeric lt"  vercmp 1.0 "<" 1.0
 assert_true  "numeric lte" vercmp 1.0 "<=" 1.0
 assert_true "numeric lt"   vercmp 1.0 "<" 1.0.1
 assert_true "numeric lte"  vercmp 1.0 "<=" 1.0.1
 assert_true "alpha lt"     vercmp 1.0.1a "<" 1.0.1b
 assert_true "alpha lte"    vercmp 1.0.1a "<=" 1.0.1b
 assert_true "alpha lt"     vercmp a "<" b
 assert_true "alpha lte"    vercmp a "<=" b
 assert_true "alpha lt"     vercmp 2.0-rc1 "<" 2.0-rc3
 assert_true "alpha lte"    vercmp 2.0-rc1 "<=" 2.0-rc3
 
 assert_true "eq"       vercmp 1.0 "==" 1.0
 assert_true "eq"       vercmp 1.0.1 "==" 1.0.1
 assert_false "eq fail" vercmp 1.0.1 "==" 1.0.2
 assert_false "eq fail" vercmp 2.0-rc1 "==" 2.0-rc2
 
 report_results