#!/usr/bin/env bash

# BEGIN_COPYRIGHT
# 
# Copyright 2009-2019 CRS4.
# 
# 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 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.
# 
# END_COPYRIGHT

set -euo pipefail
[ -n "${DEBUG:-}" ] && set -x
this="${BASH_SOURCE-$0}"
this_dir=$(cd -P -- "$(dirname -- "${this}")" && pwd -P)
. "${this_dir}/../config.sh"

export TEST_ROOT="${TEST_ROOT:-pydoop_test_tree}"
DEPTH=${1:-3}
SPAN=${2:-4}

if [ "$(hadoop_fs)" != "file" ]; then
    echo "Waiting for HDFS to exit safe mode..."
    "${HDFS}" dfsadmin -safemode wait
fi

WD=$(mktemp -d)
pushd "${WD}"

echo "Generating tree (depth=${DEPTH}, span=${SPAN})..."
"${PYTHON}" "${this_dir}"/treegen.py ${DEPTH} ${SPAN}

echo "Computing usage by block size..."
"${PYTHON}" "${this_dir}"/treewalk.py

echo "Cleaning up..."
${HDFS} dfs -rm -r -f "${TEST_ROOT}"

if (( ${PY_VER} >= 3 )); then
    echo "Checking REPL example..."
    ${PYTHON} "${this_dir}"/repl_session.py
fi

popd
rm -rf "${WD}"
