#    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.
#
function run_test {
  local description="$1"
  local command="$2"

  printf "\n==============================================================================\n"
  printf "Running '${description}'\n"
  printf "==============================================================================\n"

  TOTAL=`expr $TOTAL + 1`

  ${command}
  exit_code="$?"

  if [[ ${exit_code} == 0 ]]; then
      printf "\n[PASS] '${description}' passed! Test exited with exit code 0.\n\n"
      PASSED=`expr $PASSED + 1`
  else
      printf "\n[FAIL] '${description}' failed! Test exited with exit code ${exit_code}\n\n"
  fi
}

if [[ ! -d "e2e-test/target" || ! -d "python/.venv" ]]; then
  echo "Build flink-agents before run e2e tests."
  bash tools/build.sh
fi

source python/.venv/bin/activate

export TOTAL=0
export PASSED=0

tempdir=$(mktemp -d)
echo "tmpdir：$tempdir"

jar_path=e2e-test/agent-plan-compatibility-test/target/flink-agents*.jar
run_test "Agent plan compatibility end-to-end test" "bash e2e-test/test-scripts/test_agent_plan_compatibility.sh $tempdir $jar_path"
run_test "Cross-Language Config Option end-to-end test" "bash e2e-test/test-scripts/test_java_config_in_python.sh"

printf "\n$PASSED/$TOTAL bash e2e-tests passed\n"

if [[ "$PASSED" != "$TOTAL" ]]; then
    exit 1
fi

