# file      : tests/eval/or-and.test
# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
# license   : MIT; see accompanying LICENSE file

# Test logical operators (eval-or, eval-and).

.include ../common.test

$* <'print (false || false)' >'false' : or-false
$* <'print (false || true)'  >'true'  : or-true-1
$* <'print (true  || false)' >'true'  : or-true-2

$* <'print (false && true)'  >'false' : and-false-1
$* <'print (true  && false)' >'false' : and-false-2
$* <'print (true  && true)'  >'true'  : and-true

: associativity
:
: Also tests short-circuit.
:
{
  $* <'print (true  || $bogus($foo) || false)' >'true'  : or
  $* <'print (false && $bogus($foo) && false)' >'false' : and
}

: priority
:
$* <'print (false && true || true)' >'true'