| <?xml version="1.0"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <project xmlns:au="antlib:org.apache.ant.antunit" |
| xmlns:props="antlib:org.apache.ant.props" default="antunit"> |
| |
| <typedef name="logical-ops" classname="org.apache.ant.props.LogicalOperationEvaluator" /> |
| <logical-ops id="logical-ops" /> |
| |
| <propertyhelper> |
| <delegate refid="logical-ops" /> |
| <props:nested /> |
| </propertyhelper> |
| |
| <target name="antunit"> |
| <antunit xmlns="antlib:org.apache.ant.antunit"> |
| <plainlistener /> |
| <file file="${ant.file}" xmlns="antlib:org.apache.tools.ant" /> |
| </antunit> |
| </target> |
| |
| <target name="test-amp"> |
| <au:assertTrue> |
| <istrue value="${true & true}" /> |
| </au:assertTrue> |
| <au:assertFalse> |
| <istrue value="${false & true}" /> |
| </au:assertFalse> |
| <au:assertFalse> |
| <istrue value="${false & false}" /> |
| </au:assertFalse> |
| <au:assertFalse> |
| <istrue value="${true & false}" /> |
| </au:assertFalse> |
| </target> |
| |
| <target name="test-plus"> |
| <au:assertTrue> |
| <istrue value="${true + true}" /> |
| </au:assertTrue> |
| <au:assertFalse> |
| <istrue value="${true + false}" /> |
| </au:assertFalse> |
| <au:assertFalse> |
| <istrue value="${false + false}" /> |
| </au:assertFalse> |
| <au:assertFalse> |
| <istrue value="${false + true}" /> |
| </au:assertFalse> |
| </target> |
| |
| <target name="test-xor"> |
| <au:assertTrue> |
| <istrue value="${true ^ false}" /> |
| </au:assertTrue> |
| <au:assertTrue> |
| <istrue value="${false ^ true}" /> |
| </au:assertTrue> |
| <au:assertFalse> |
| <istrue value="${true ^ true}" /> |
| </au:assertFalse> |
| <au:assertFalse> |
| <istrue value="${false ^ false}" /> |
| </au:assertFalse> |
| </target> |
| |
| <target name="test-or"> |
| <au:assertTrue> |
| <istrue value="${true | false}" /> |
| </au:assertTrue> |
| <au:assertTrue> |
| <istrue value="${true | true}" /> |
| </au:assertTrue> |
| <au:assertTrue> |
| <istrue value="${false | true}" /> |
| </au:assertTrue> |
| <au:assertFalse> |
| <istrue value="${false | false}" /> |
| </au:assertFalse> |
| </target> |
| |
| <target name="test-multi-amp"> |
| <au:assertTrue> |
| <istrue value="${true & true & true & true}" /> |
| </au:assertTrue> |
| <au:assertFalse> |
| <istrue value="${false & true & true & true}" /> |
| </au:assertFalse> |
| <au:assertFalse> |
| <istrue value="${true & false & true & true}" /> |
| </au:assertFalse> |
| <au:assertFalse> |
| <istrue value="${true & true & false & true}" /> |
| </au:assertFalse> |
| <au:assertFalse> |
| <istrue value="${true & true & true & false}" /> |
| </au:assertFalse> |
| </target> |
| |
| <target name="test-multi-plus"> |
| <au:assertTrue> |
| <istrue value="${true + true + true + true}" /> |
| </au:assertTrue> |
| <au:assertFalse> |
| <istrue value="${false + true + true + true}" /> |
| </au:assertFalse> |
| <au:assertFalse> |
| <istrue value="${true + false + true + true}" /> |
| </au:assertFalse> |
| <au:assertFalse> |
| <istrue value="${true + true + false + true}" /> |
| </au:assertFalse> |
| <au:assertFalse> |
| <istrue value="${true + true + true + false}" /> |
| </au:assertFalse> |
| </target> |
| |
| <target name="test-multi-xor"> |
| <au:assertFalse> |
| <!-- true ^ false == true, ^ true == false, ^ false == false --> |
| <istrue value="${true ^ false ^ true ^ false}" /> |
| </au:assertFalse> |
| <au:assertTrue> |
| <!-- true ^ false == true, ^ false == true, ^ false == true --> |
| <istrue value="${true ^ false ^ false ^ false}" /> |
| </au:assertTrue> |
| <au:assertTrue> |
| <!-- false ^ true == true, ^ false == true, ^ false == true --> |
| <istrue value="${false ^ true ^ false ^ false}" /> |
| </au:assertTrue> |
| <au:assertFalse> |
| <istrue value="${false ^ false ^ false ^ false}" /> |
| </au:assertFalse> |
| <au:assertTrue> |
| <istrue value="${false ^ false ^ false ^ true}" /> |
| </au:assertTrue> |
| <au:assertTrue> |
| <istrue value="${true ^ false ^ true ^ true}" /> |
| </au:assertTrue> |
| <au:assertTrue> |
| <istrue value="${true ^ true ^ true ^ true ^ true}" /> |
| </au:assertTrue> |
| </target> |
| |
| <target name="test-multi-or"> |
| <au:assertTrue> |
| <istrue value="${false | true | false | false}" /> |
| </au:assertTrue> |
| <au:assertTrue> |
| <istrue value="${true | false | false | false}" /> |
| </au:assertTrue> |
| <au:assertTrue> |
| <istrue value="${false | false | false | true}" /> |
| </au:assertTrue> |
| <au:assertTrue> |
| <istrue value="${false | false | true | false}" /> |
| </au:assertTrue> |
| <au:assertTrue> |
| <istrue value="${true | false | true | false}" /> |
| </au:assertTrue> |
| <au:assertTrue> |
| <istrue value="${true | true | true | false}" /> |
| </au:assertTrue> |
| <au:assertTrue> |
| <istrue value="${true | true | true | false}" /> |
| </au:assertTrue> |
| </target> |
| |
| <target name="test-precedence"> |
| <au:assertTrue> |
| <istrue value="${true | false + true}" /> |
| </au:assertTrue> |
| <au:assertTrue> |
| <istrue value="${true + false | true}" /> |
| </au:assertTrue> |
| <au:assertTrue> |
| <istrue value="${false + true ^ true | true + false}" /> |
| </au:assertTrue> |
| </target> |
| |
| <target name="test-negation"> |
| <au:assertTrue> |
| <istrue value="${!false}" /> |
| </au:assertTrue> |
| <au:assertFalse> |
| <istrue value="${!true}" /> |
| </au:assertFalse> |
| </target> |
| |
| <target name="test-nested-negation"> |
| <propertyhelper> |
| <props:stringops /> |
| </propertyhelper> |
| <au:assertTrue> |
| <istrue value="${!${foo:-false}}" /> |
| </au:assertTrue> |
| <au:assertFalse> |
| <istrue value="${!${foo:-true}}" /> |
| </au:assertFalse> |
| </target> |
| |
| </project> |