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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
#!/bin/bash -xe
cmd=./natest
echo "Single match and wildcard"
$cmd 'a=1' 'a=1'
$cmd '(a=1)' 'a=1'
$cmd 'a=*' 'a=1'
$cmd 'a=*' 'a=2'
! $cmd 'a=1' 'a=2'
! $cmd 'a=1' 'b=1'
! $cmd 'a=*' 'b=1'
echo "Single OR"
$cmd 'a=1 or b=1' 'a=1'
$cmd 'a=1 or b=1' 'b=1'
$cmd '(a=1 or b=1)' 'a=1'
$cmd '(a=1) or (b=1)' 'b=1'
! $cmd 'a=1 or b=1' 'c=1'
! $cmd 'a=1 or b=1' 'b=2'
echo "Hex string byte comparison"
$cmd 'a=1 or b=[414243]' 'b=ABC'
! $cmd 'a=1 or b=[414243]' 'b=ABZ'
! $cmd 'a=1 or b=[41424]' 'b=ABC'
echo "Multiple OR"
$cmd 'a=1 or b=1 or b=2' 'a=1'
$cmd 'a=1 or b=1 or b=2' 'b=1'
$cmd 'a=1 or b=1 or b=2' 'b=2'
! $cmd 'a=1 or b=1 or b=2' 'a=2' 'b=3'
echo "Single AND and wildcard"
$cmd 'a=1 and b=1' 'a=1' 'b=1'
$cmd 'a=1 and b=*' 'a=1' 'b=1'
$cmd 'a=1 and b=*' 'a=1' 'b=2'
! $cmd 'a=1 and b=1' 'a=1'
! $cmd 'a=1 and b=1' 'b=1'
echo "Multiple AND with some arbitrary nesting"
$cmd 'a=1 and b=1 and c=1' 'a=1' 'b=1' 'c=1'
$cmd '(a=1 and (b=1 and c=1))' 'a=1' 'b=1' 'c=1'
! $cmd 'a=1 and b=1 and c=1' 'b=1' 'c=1'
echo "Combinations"
$cmd 'a=1 and b=1 or b=2' 'a=1' 'b=1'
$cmd 'a=1 and b=1 or b=2' 'a=1' 'b=2'
$cmd '(a=1 and b=1) or b=2' 'b=2'
$cmd '(a=1 and b=1) or b=2' 'a=1' 'b=1'
! $cmd 'a=1 and b=1 or b=2' 'b=2'
! $cmd 'a=1 and b=1 or b=2' 'a=1' 'b=3'
! $cmd '(a=1 and b=1) or b=2' 'b=1'
! $cmd '(a=1 and b=1) or b=2' 'a=2' 'b=1'
$cmd 'a=1 or b=1 and c=1' 'a=1'
$cmd 'a=1 or (b=1 and c=1)' 'a=1'
$cmd 'a=1 or b=1 and c=1' 'b=1' 'c=1'
$cmd 'a=1 or (b=1 and c=1)' 'b=1' 'c=1'
! $cmd 'a=1 or b=1 and c=1' 'a=2' 'b=1' 'c=2'
! $cmd 'a=1 or b=1 and c=1' 'b=1' 'c=2'
$cmd '(a=1 or b=1) and c=1' 'a=1' 'c=1'
$cmd '(a=1 or b=1) and c=1' 'b=1' 'c=1'
! $cmd '(a=1 or b=1) and c=1' 'a=1'
! $cmd '(a=1 or b=1) and c=1' 'b=1'
! $cmd '(a=1 or b=1) and c=1' 'c=1'
$cmd '((a=1 or a=2) and (b=1 or (b=2 and c=1)))' 'a=1' 'b=1'
$cmd '((a=1 or a=2) and (b=1 or (b=2 and c=1)))' 'a=2' 'b=1'
$cmd '((a=1 or a=2) and (b=1 or (b=2 and c=1)))' 'a=1' 'b=2' 'c=1'
$cmd '((a=1 or a=2) and (b=1 or (b=2 and c=1)))' 'a=2' 'b=2' 'c=1'
! $cmd '((a=1 or a=2) and (b=1 or (b=2 and c=1)))' 'a=2' 'b=3' 'c=1'
! $cmd '((a=1 or a=2) and (b=1 or (b=2 and c=1)))' 'a=2' 'b=2' 'c=2'
echo "Parse errors"
! $cmd '(a=)' 'a=1'
! $cmd '(a=1 b=1)' 'a=1'
! $cmd '((a=1 or b=1)' 'a=1'
! $cmd 'a=1 or' 'a=1'
! $cmd 'a or b' 'a=1'
! $cmd '((a=1)or b=1)' 'a=1'
|