1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
open Obuild
let err = ref 0
let assumeEq testname expected got =
if expected = got then
Printf.printf "SUCCESS %s\n" testname
else
(Printf.printf "FAILED %s Expected %b Got %b\n" testname expected got; err := !err + 1)
let expr_to_string = function
| None -> ""
| Some expr -> Expr.to_string expr
let eval version = function
| None -> true
| Some expr -> Expr.eval version expr
let () =
let version1 = "1.7" in
let version2 = "1.7.2" in
let version3 = "2.0.0.0" in
let version4 = "1.12.1alpha" in
let (name,expr_ge) = Expr.parse_builddep "uri (>=1.7.2)" in
Printf.printf "pkg %s constraint %s\n" name (expr_to_string expr_ge);
assumeEq ">= false" false (eval version1 expr_ge);
assumeEq ">= true" true (eval version2 expr_ge);
assumeEq ">= true" true (eval version3 expr_ge);
assumeEq ">= true" true (eval version4 expr_ge);
let (name,expr_lt) = Expr.parse_builddep "uri (<1.7.2)" in
Printf.printf "pkg %s constraint %s\n" name (expr_to_string expr_ge);
assumeEq "< true" true (eval version1 expr_lt);
assumeEq "< false" false (eval version2 expr_lt);
assumeEq "< false" false (eval version3 expr_lt);
assumeEq "< false" false (eval version4 expr_lt);
let (name,expr_ne) = Expr.parse_builddep "uri (!=1.7.2)" in
Printf.printf "pkg %s constraint %s\n" name (expr_to_string expr_ne);
assumeEq "!= true" true (eval version1 expr_ne);
assumeEq "!= false" false (eval version2 expr_ne);
assumeEq "!= true" true (eval version3 expr_ne);
assumeEq "!= true" true (eval version4 expr_ne);
let (name,expr_not_eq) = Expr.parse_builddep "uri !(=1.7.2)" in
Printf.printf "pkg %s constraint %s\n" name (expr_to_string expr_not_eq);
assumeEq "! = true" true (eval version1 expr_ne);
assumeEq "! = false" false (eval version2 expr_ne);
assumeEq "! = true" true (eval version3 expr_ne);
assumeEq "! = true" true (eval version4 expr_ne);
let (name,expr_comp) = Expr.parse_builddep "uri (<1.7.2) || (>=2.0)" in
Printf.printf "pkg %s constraint %s\n" name (expr_to_string expr_comp);
assumeEq "< | >= = true" true (eval version1 expr_comp);
assumeEq "< | >= = false" false (eval version2 expr_comp);
assumeEq "< | >= = true" true (eval version3 expr_comp);
assumeEq "< | >= = false" false (eval version4 expr_comp);
let (name,expr_comp2) = Expr.parse_builddep "uri ((<1.7.2) || (>=2.0) || (=1.7.2))" in
Printf.printf "pkg %s constraint %s\n" name (expr_to_string expr_comp2);
assumeEq "< | >= = true" true (eval version1 expr_comp2);
assumeEq "< | >= = true" true (eval version2 expr_comp2);
assumeEq "< | >= = true" true (eval version3 expr_comp2);
assumeEq "< | >= = false" false (eval version4 expr_comp2);
if !err > 1 then
exit 1
else
exit 0
|