# 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.
---
# https://repository.apache.org/content/repositories/snapshots/org/apache/calcite/avatica/avatica-tck/1.8.0-SNAPSHOT
tck_jar: /home/user/avatica-tck-1.8.0-SNAPSHOT-shaded.jar

# Global template, can be overriden in each version. <url> is automatically replaced by the framework
client_url_template: jdbc:avatica:remote:url=<url>;serialization=PROTOBUF

# Specifies all versions to be tested against one another
versions:
  # The user _must_ fill in the port number for the Avatica server for each version
  v1.6.0:
    # https://repository.apache.org/content/repositories/releases/org/apache/calcite/calcite-avatica/1.6.0/calcite-avatica-1.6.0.jar
    client_jar: /home/user/calcite-avatica-1.6.0.jar
    server_url: http://localhost:XXXXX

  v1.7.1:
    # https://repository.apache.org/content/repositories/releases/org/apache/calcite/avatica/avatica/1.7.1/avatica-1.7.1.jar
    client_jar: /home/user/avatica-1.7.1.jar
    server_url: http://localhost:XXXXX

  v1.8.0-SNAPSHOT:
    # https://repository.apache.org/content/repositories/snapshots/org/apache/calcite/avatica/avatica/1.8.0-SNAPSHOT/
    client_jar: /home/user/avatica-1.8.0-SNAPSHOT.jar
    server_url: http://localhost:XXXXX
