<!--
 ! Copyright 2009-2013 by The Regents of the University of California
 ! Licensed 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 from
 ! 
 !     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.
 !-->
<test-suite
    xmlns="urn:xml.testframework.asterix.apache.org"
    ResultOffsetPath="results"
    QueryOffsetPath="queries"
    QueryFileExtension=".aql">
    <!-- By default no test are listed here. This is only for individual testing purposes. -->
    <!-- The following test case is commented out as an example. -->
    <test-group name="repeated-tests">
<!--
        <test-case FilePath="records/get-record-fields">
            <compilation-unit name="tiny-social-example">
                <output-dir compare="Text">tiny-social-example</output-dir>
            </compilation-unit>
        </test-case>
-->
    </test-group>
</test-suite>
