#! /bin/bash
# -*- coding: utf-8 -*-
# Regression tests on travis emulator
#
READLINK=$(which greadlink 2>/dev/null) || READLINK=$(which readlink 2>/dev/null)
export READLINK
# Based on template 2.0.0
THIS=$(basename "$0")
TDIR=$(readlink -f $(dirname $0))
[ $BASH_VERSINFO -lt 4 ] && echo "This script $0 requires bash 4.0+!" && exit 4
if [[ -z $HOME_DEVEL || ! -d $HOME_DEVEL ]]; then
  [[ -d $HOME/odoo/devel ]] && HOME_DEVEL="$HOME/odoo/devel" || HOME_DEVEL="$HOME/devel"
fi
[[ -x $TDIR/../bin/python3 ]] && PYTHON=$(readlink -f $TDIR/../bin/python3) || [[ -x $TDIR/python3 ]] && PYTHON="$TDIR/python3" || PYTHON=$(which python3 2>/dev/null) || PYTHON="python"
[[ -z $PYPATH ]] && PYPATH=$(echo -e "import os,sys\no=os.path\na=o.abspath\nj=o.join\nd=o.dirname\nb=o.basename\nf=o.isfile\np=o.isdir\nC=a('"$TDIR"')\nD='"$HOME_DEVEL"'\nif not p(D) and '/devel/' in C:\n D=C\n while b(D)!='devel':  D=d(D)\nN='venv_tools'\nU='setup.py'\nO='tools'\nH=o.expanduser('~')\nT=j(d(D),O)\nR=j(d(D),'pypi') if b(D)==N else j(D,'pypi')\nW=D if b(D)==N else j(D,'venv')\nS='site-packages'\nX='scripts'\ndef pt(P):\n P=a(P)\n if b(P) in (X,'tests','travis','_travis'):\n  P=d(P)\n if b(P)==b(d(P)) and f(j(P,'..',U)):\n  P=d(d(P))\n elif b(d(C))==O and f(j(P,U)):\n  P=d(P)\n return P\ndef ik(P):\n return P.startswith((H,D,K,W)) and p(P) and p(j(P,X)) and f(j(P,'__init__.py')) and f(j(P,'__main__.py'))\ndef ak(L,P):\n if P not in L:\n  L.append(P)\nL=[C]\nK=pt(C)\nfor B in ('z0lib','zerobug','odoo_score','clodoo','travis_emulator'):\n for P in [C]+sys.path+os.environ['PATH'].split(':')+[W,R,T]:\n  P=pt(P)\n  if B==b(P) and ik(P):\n   ak(L,P)\n   break\n  elif ik(j(P,B,B)):\n   ak(L,j(P,B,B))\n   break\n  elif ik(j(P,B)):\n   ak(L,j(P,B))\n   break\n  elif ik(j(P,S,B)):\n   ak(L,j(P,S,B))\n   break\nak(L,os.getcwd())\nprint(' '.join(L))\n"|$PYTHON)
[[ $TRAVIS_DEBUG_MODE -ge 8 ]] && echo "PYPATH=$PYPATH"
for d in $PYPATH /etc; do
  if [[ -e $d/z0librc ]]; then
    . $d/z0librc
    Z0LIBDIR=$(readlink -e $d)
    break
  fi
done
[[ -z "$Z0LIBDIR" ]] && echo "Library file z0librc not found in <$PYPATH>!" && exit 72
[[ $TRAVIS_DEBUG_MODE -ge 8 ]] && echo "Z0LIBDIR=$Z0LIBDIR"
TESTDIR=$(findpkg "" "$TDIR . .." "tests")
[[ $TRAVIS_DEBUG_MODE -ge 8 ]] && echo "TESTDIR=$TESTDIR"
RUNDIR=$(readlink -e $TESTDIR/..)
[[ $TRAVIS_DEBUG_MODE -ge 8 ]] && echo "RUNDIR=$RUNDIR"
Z0TLIBDIR=$(findpkg z0testrc "$PYPATH" "zerobug")
[[ -z "$Z0TLIBDIR" ]] && echo "Library file z0testrc not found!" && exit 72
. $Z0TLIBDIR
Z0TLIBDIR=$(dirname $Z0TLIBDIR)
[[ $TRAVIS_DEBUG_MODE -ge 8 ]] && echo "Z0TLIBDIR=$Z0TLIBDIR"

CFG_init "ALL"
link_cfg_def
link_cfg $DIST_CONF $TCONF
[[ $TRAVIS_DEBUG_MODE -ge 8 ]] && echo "DIST_CONF=$DIST_CONF" && echo "TCONF=$TCONF"
get_pypi_param ALL
RED="\e[1;31m"
GREEN="\e[1;32m"
CLR="\e[0m"

__version__=2.0.8


save_testenv() {
#save_testenv(cwd)
    local p
    for p in opt_dry_run pkg opt_verbose opt_r opt_conf opt_virt; do
        eval SAVE_$p=${!p}
    done
    LCLTEST_CWD=$PWD
    if [ -z "$1" ]; then
        cd $LCL_OE_PKGPATH
    elif [ "$1" == "0" ]; then
        cd $LCL_OE_ROOT
    elif [ "$1" == "2" ]; then
        cd $LCL_OE_PKGPATH2
    elif [ "$1" == "P" ]; then
        cd $LCL_PY_PRJPATH
    fi
}

restore_testenv() {
    local p x
    for p in opt_dry_run pkg opt_verbose opt_r opt_conf opt_virt; do
        x=saved_$p
        eval $p=${!x}
        eval SAVE_$p=
    done
    cd $LCLTEST_CWD
}

result_testenv() {
#result_testenv(cwd)
    # ODOO setup
    local p x
    for p in opt_dry_run pkg opt_verbose opt_r opt_conf opt_virt; do
      eval tested_$p=${!p}
    done
    restore_testenv
    save_testenv $1
}

Z0BUG_setup() {
    LCL_ROOT=$(getent passwd $USER|cut -f6 -d:)
    local VERSION=9.0
    local ODOO_REPO=local/odoo
    LCL_OE_PRJNAME="Odoo"
    LCL_OE_REPOS=l10n_italy
    LCL_OE_PKGNAME=l10n_it_base
    LCL_OE_ROOT=~/devel/odoo/$VERSION
    LCL_OE_PRJPATH=$LCL_OE_ROOT/$LCL_OE_REPOS
    LCL_OE_PKGPATH=$LCL_OE_PRJPATH/$LCL_OE_PKGNAME
    LCL_OE_PKGPATH2=$LCL_OE_PRJPATH/__unported__/$LCL_OE_PKGNAME
    mkdir -p ~/maintainer-quality-tools
    mkdir -p $LCL_OE_ROOT
    mkdir -p $LCL_OE_ROOT/openerp
    touch $LCL_OE_ROOT/openerp-server
    mkdir -p $LCL_OE_PRJPATH
    mkdir -p $LCL_OE_PKGPATH
    mkdir -p $LCL_OE_PKGPATH2
    touch $LCL_OE_PKGPATH/__openerp__.py
    touch $LCL_OE_PKGPATH2/__openerp__.py
    mkdir -p $LCL_OE_PRJPATH/conf
    touch $LCL_OE_PRJPATH/conf/.local_dist_pkg.conf
    LCL_OE_SETUP=__openerp__.py
    if [ ! -f /etc/odoo/odoo9-server.conf ]; then
      LCLTEST_ODOO9_SERVER=/etc/odoo/odoo9-server.conf
      touch $LCLTEST_ODOO9_SERVER
    fi
    if [ -d ~/$VERSION/dependencies ]; then rm -fR ~/$VERSION/dependencies; fi
    if [ -L ~/$VERSION/dependencies ]; then rm -f ~/$VERSION/dependencies; fi

    FOUT=$TESTDIR/test_lib.out
    FTEST=$TESTDIR/test_lib.test
    cat<<'EOF' >$FTEST
> if [ -d $LCL_ROOT/dependencies ]; then rm -fR $LCL_ROOT/dependencies; fi
> if [ -L $LCL_ROOT/dependencies ]; then rm -f $LCL_ROOT/dependencies; fi
> if [ -L $LCL_ROOT/l10n_it_base-9.0 ]; then rm -f $LCL_ROOT/l10n_it_base-9.0; fi
> if [ -L $LCL_ROOT/odoo-9.0 ]; then rm -f $LCL_ROOT/odoo-9.0; fi
> if [ -L $LCL_ROOT/odoo-9.0 ]; then rm -f $LCL_ROOT/odoo-9.0; fi
> rm -fR $LCL_ROOT/maintainer-quality-tools
$ cp /etc/odoo/odoo9-server.conf $LCL_ROOT/.openerp_serverrc
> mkdir $LCL_ROOT/dependencies
> export INCLUDE=l10n_it_base
> ln -s $LCL_ROOT/devel/odoo/9.0/l10n_italy $LCL_ROOT/dependencies/
> ln -s $LCL_ROOT/devel/odoo/9.0/openerp $LCL_ROOT/dependencies/
> ln -s $LCL_ROOT/devel/odoo/9.0/openerp $LCL_ROOT/dependencies/
> ln -s $LCL_ROOT/devel/odoo/9.0 $LCL_ROOT/odoo-9.0
> ln -s $LCL_ROOT/devel/odoo/9.0/l10n_italy/l10n_it_base $LCL_ROOT/l10n_it_base-9.0

EOF
    LCL_PY_PRJNAME="example"
    LCL_PY_PKGNAME=$LCL_PY_PRJNAME
    LCL_PY_REPOS="pypi"
    LCL_PY_ROOT=~/devel/test/pypi
    LCL_PY_SETUP=setup.py
    mkdir -p ~/devel/test
    mkdir -p ~/devel/test/pypi
    mkdir -p ~/devel/test/pypi/$LCL_PY_PRJNAME
    mkdir -p ~/devel/test/pypi/$LCL_PY_PRJNAME/$LCL_PY_PRJNAME
    LCL_PY_PKGPATH=$LCL_PY_ROOT/$LCL_PY_PRJNAME
    LCL_PY_PRJPATH=$LCL_PY_PKGPATH/$LCL_PY_PRJNAME
    mkdir -p $LCL_PY_PKGPATH/conf
    touch $LCL_PY_PKGPATH/conf/.local_dist_pkg.conf
    touch $LCL_PY_PKGPATH/setup.py
}

Z0BUG_teardown() {
    rm -fR ~/devel/test
    rm -f ~/maintainer-quality-tools
    rm -fR $LCL_OE_PKGPATH2
    rm -fR $LCL_OE_PKGPATH
    rm -fR $LCL_OE_PRJPATH
    rm -fR $LCL_OE_ROOT
    if [ -n "$LCLTEST_ODOO9_SERVER" ]; then
      rm -f $LCLTEST_ODOO9_SERVER
    fi
    if [ -f $FOUT ]; then rm -f $FOUT; fi
    if [ -f $FTEST ]; then rm -f $FTEST; fi
}


test_01() {
    save_testenv
    local s sts res opts
    sts=0
    if [ ${opt_dry_run:-0} -eq 0 ]; then
      opts_travis ""
      result_testenv
    fi
    # test_result "opts_travis OE (travis.conf)" "$TDIR/.travis.conf" "$TCONF"
    # s=$?; [ ${s-0} -ne 0 ] && sts=$s
    # test_result "opts_travis OE (local conf)" "$LCL_OE_PRJPATH/conf/.local_dist_pkg.conf" "$DIST_CONF"
    # s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "opts_travis OE (REMOTEREPO)" "local" "$REMOTEREPO"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "opts_travis OE (PKGPATH)" "$LCL_OE_PKGPATH" "$PKGPATH"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "opts_travis OE (PKGNAME)" "$LCL_OE_PKGNAME" "$PKGNAME"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "opts_travis OE (PRJPATH)" "$LCL_OE_PRJPATH" "$PRJPATH"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "opts_travis OE (PRJNAME)" "$LCL_OE_PRJNAME" "$PRJNAME"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "opts_travis OE (REPOSNAME)" "$LCL_OE_REPOS" "$REPOSNAME"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "opts_travis OE (SETUP)" "$LCL_OE_PKGPATH/$LCL_OE_SETUP" "$SETUP"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "opts_travis OE (MANIFEST)" "$LCL_OE_SETUP" "$MANIFEST"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    restore_testenv
    return $sts
}

test_02() {
    save_testenv "P"
    local s sts res opts
    sts=0
    if [ ${opt_dry_run:-0} -eq 0 ]; then
      opts_travis ""
      result_testenv
    fi
    # test_result "opts_travis PY (travis.conf)" "$TDIR/.travis.conf" "$TCONF"
    # s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "opts_travis PY (local conf)" "$LCL_PY_PKGPATH/conf/.local_dist_pkg.conf" "$DIST_CONF"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "opts_travis PY (REMOTEREPO)" "local" "$REMOTEREPO"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "opts_travis PY (PKGPATH)" "$LCL_PY_PKGPATH" "$PKGPATH"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "opts_travis PY (PKGNAME)" "$LCL_PY_PKGNAME" "$PKGNAME"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "opts_travis PY (PRJPATH)" "$LCL_PY_PRJPATH" "$PRJPATH"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "opts_travis PY (PRJNAME)" "$LCL_PY_PRJNAME" "$PRJNAME"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "opts_travis PY (REPOSNAME)" "$LCL_PY_REPOS" "$REPOSNAME"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "opts_travis PY (SETUP)" "$LCL_PY_PKGPATH/$LCL_PY_SETUP" "$SETUP"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "opts_travis PY (MANIFEST)" "$LCL_PY_SETUP" "$MANIFEST"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    restore_testenv
    return $sts
}

test_03() {
    save_testenv
    local s sts RES opts
    opt_conf=
    sts=0
    opts_travis ""
    if [[ ${opt_dry_run:-0} -eq 0 ]]; then
      opt_verbose=1
      PRJNAME=
      CFG_init
      conf_default
      init_travis
      result_testenv
    fi
    test_result "init_travis.dry_run" "" "$opts_dry_run"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "init_travis.verbose" "-v" "$opts_verbose"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "init_travis.FLOG_ECHO" "echo" "$FLOG_ECHO"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    check_4_travis

    if [[ ${opt_dry_run:-0} -eq 0 ]]; then
      opt_verbose=1
      opts=$(inherits_travis_opts "v" "D")
      result_testenv
    fi
    test_result "init_travis opts" "-v" "$opts"
    if [[ ${opt_dry_run:-0} -eq 0 ]]; then
      opt_verbose=0
      opts=$(inherits_travis_opts "" "D")
      result_testenv
    fi
    test_result "init_travis opts" "-q" "$opts"

    if [[ ${opt_dry_run:-0} -eq 0 ]]; then
      opt_verbose=1
      MQT_VERBOSE_MODE=
      inherits_travis_opts "v" "T" >/dev/null
      result_testenv
    fi
    test_result "init_travis \$MQT_VERBOSE_MODE" "1" "$MQT_VERBOSE_MODE"
    if [[ ${opt_dry_run:-0} -eq 0 ]]; then
      opt_verbose=1
      opt_dprj=0
      RES=$(inherits_travis_opts "-rjPKT" "T")
      result_testenv
    fi
    test_result "inherit opts T" "-KPrTv" "$RES"

    if [[ ${opt_dry_run:-0} -eq 0 ]]; then
      opt_verbose=-1
      opt_dprj=1
      opt_dry_run=1
      RES=$(inherits_travis_opts "" "A")
      result_testenv
    fi
    test_result "inherit opts A" "-jnv" "$RES"

    if [[ ${opt_dry_run:-0} -eq 0 ]]; then
      opt_verbose=0
      opt_cpush="-C"
      opt_diff=1
      RES=$(inherits_travis_opts "-n" "D")
      result_testenv
    fi
    test_result "inherit opts D" "-Cdnq" "$RES"
    if [[ ${opt_dry_run:-0} -eq 0 ]]; then
      opt_verbose=0
      opt_cpush="-P"
      opt_diff=0
      opt_force=1
      RES=$(inherits_travis_opts "-nd" "D")
      result_testenv
    fi
    test_result "inherit opts D" "-dfnPq" "$RES"
    if [[ ${opt_dry_run:-0} -eq 0 ]]; then
      opt_verbose=0
      opt_cpush="-R"
      opt_diff=0
      opt_force=0
      RES=$(inherits_travis_opts "-n" "D")
      result_testenv
    fi
    test_result "inherit opts D" "-nqR" "$RES"
    if [ ${opt_dry_run:-0} -eq 0 ]; then
      opt_verbose=0
      opt_cpush="-F"
      opt_diff=0
      opt_force=0
      RES=$(inherits_travis_opts "-nf" "D")
      result_testenv
    fi
    test_result "inherit opts D" "-Ffnq" "$RES"

    if [ ${opt_dry_run:-0} -eq 0 ]; then
      opt_verbose=-1
      opt_r=1
      RES=$(inherits_travis_opts "-nmjb" "E")
      result_testenv
    fi
    test_result "inherit opts E" "-jmnrv" "$RES"
    if [ ${opt_dry_run:-0} -eq 0 ]; then
      opt_verbose=-0
      opt_r=0
      RES=$(inherits_travis_opts "-nmjb" "E")
      result_testenv
    fi
    test_result "inherit opts E" "-jmnq" "$RES"
    if [ ${opt_dry_run:-0} -eq 0 ]; then
      opt_cpush=
      RES=$(inherits_travis_opts "-RnKCO" "N")
      result_testenv
    fi
    test_result "inherit opts N" "-CKnOR" "$RES"
    if [ ${opt_dry_run:-0} -eq 0 ]; then
      opt_verbose=1
      opt_diff=1
      RES=$(inherits_travis_opts "-upOnLjb" "P")
      result_testenv
    fi
    test_result "inherit opts P" "-djnOuv" "$RES"
    if [ ${opt_dry_run:-0} -eq 0 ]; then
      opt_verbose=0
      opt_diff=0
      opt_uop=1
      RES=$(inherits_travis_opts "-n" "8")
      result_testenv
    fi
    test_result "inherit opts 8" "-nqu" "$RES"
    restore_testenv
    return $sts
}

test_04() {
    save_testenv
    local s sts res opts
    export opt_conf=$TESTDIR/test_travis.conf
    [ -f $opt_conf ] && rm -f $opt_conf
    touch $opt_conf
    sts=0
    if [ ${opt_dry_run:-0} -eq 0 ]; then
      opts_travis ""
      result_testenv
    fi
    # tested_opt_conf from result_testenv
    test_result "opts_travis OE (opt_conf)" "$tested_opt_conf" "$TCONF"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "opts_travis OE (TRAVIS_REPO_SLUG)" "$REMOTEREPO/$PKGNAME" "$TRAVIS_REPO_SLUG"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s

    if [ ${opt_dry_run:-0} -eq 0 ]; then
      opt_virt=1
      opt_verbose=2
      opts_travis ""
      CFG_init
      conf_default
      init_travis
      result_testenv
    fi
    test_result "opts_travis OE (virtualenv_opts)" "" "$TRAVIS_ENVOPTS"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s

    restore_testenv
    return $sts
}

test_05() {
    save_testenv
    local s sts res opts
    opt_conf=
    sts=0
    if [ ${opt_dry_run:-0} -eq 0 ]; then
      opt_verbose=2
      opt_r=1
      TOOLS_PATH=
      PRJNAME=
      opts_travis ""
      CFG_init
      conf_default
      init_travis
      result_testenv
    fi
    # if [ -d $TDIR/_travis ]; then
    #   test_result "init_travis \$TOOLS_PATH" "$RUNDIR/_travis" "$TOOLS_PATH"
    # elif [ -d $HOME/build/local/travis_emulator/_travis ]; then
    #   test_result "init_travis \$TOOLS_PATH" "$HOME/build/local/travis_emulator/_travis" "$TOOLS_PATH"
    # else
    #   test_result "init_travis \$TOOLS_PATH" "$LCL_ROOT/devel/_travis" "$TOOLS_PATH"
    # fi
    # s=$?; [ ${s-0} -ne 0 ] && sts=$s
    # FIX: temporarly disabled
    # test_result "init_travis \$MQT_PATH" "$LCLTEST_MQT_PATH" "$MQT_PATH"
    # s=$?; [ ${s-0} -ne 0 ] && sts=$s
    if [ ${opt_dry_run:-0} -eq 0 ]; then
      opt_verbose=1
      MQT_VERBOSE_MODE=
      inherits_travis_opts "v" "T" >/dev/null
      result_testenv
    fi
    test_result "init_travis \$MQT_VERBOSE_MODE" "1" "$MQT_VERBOSE_MODE"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    # BRANCH=9.0
    # if [ -d ~/9.0 ]; then
    #   if [ ${opt_dry_run:-0} -eq 0 ]; then
    #     opt_verbose=1
    #     opt_dry_run=1
    #     prepare_env_travis
    #     run_svr_test_init > $FOUT
    #     result_testenv
    #   fi
    #   test_result "run_svr_test_init" "$FOUT" "$FTEST" "diff -qEbB"
    #   s=$?; [ ${s-0} -ne 0 ] && sts=$s
    # else
    #   VERSION=9.0
    # fi
    restore_testenv
    return $sts
}

test_06() {
    save_testenv "0"
    local s sts res opts
    opt_conf=
    sts=0
    if [ ${opt_dry_run:-0} -eq 0 ]; then
      opt_verbose=1
      PRJNAME=
      opts_travis ""
      CFG_init
      conf_default
      init_travis
      result_testenv "0"
    fi
    test_result "init_travis OE OCB (PKGPATH)" "$LCL_OE_ROOT" "$PKGPATH"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "init_travis OE OCB (REPOSNAME)" "OCB" "$REPOSNAME"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "init_travis OE OCB (PKGNAME)" "OCB" "$PKGNAME"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "init_travis OE OCB (PRJPATH)" "$LCL_OE_ROOT" "$PRJPATH"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    check_4_travis
    test_result "init_travis OE OCB (PKGPATH)" "$LCL_OE_ROOT" "$PKGPATH"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    restore_testenv "0"
    return $sts
}

test_07() {
    save_testenv
    local s sts res opts
    opt_conf=
    sts=0
    if [ ${opt_dry_run:-0} -eq 0 ]; then
      opt_verbose=1
      PRJNAME=
      opts_travis ""
      CFG_init
      conf_default
      init_travis
      result_testenv
    fi
    test_result "travis.pkgpath (RPS)" "$LCL_OE_PKGPATH" "$PKGPATH"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "travis.pkgpath (RPS)" "$LCL_OE_PKGPATH" "$PKGPATH"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "travis.reposname (RPS)" "$LCL_OE_REPOS" "$REPOSNAME"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "travis.prjname (RPS)" "$LCL_OE_PKGNAME" "$PKGNAME"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "travis.prjpath (RPS)" "$LCL_OE_PRJPATH" "$PRJPATH"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
     test_result "init_travis.prjname" "$LCL_OE_PRJNAME" "$PRJNAME"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    if [ ${opt_dry_run:-0} -eq 0 ]; then
      result_testenv "0"
      revaluate_travis
      FLOG_ECHO=echo   # revaluate_travis update FLOG_ECHO and disable test output
      result_testenv "0"
    fi
    test_result "travis.pkgpath (OCB)" "$LCL_OE_ROOT" "$PKGPATH"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "travis.reposname (OCB)" "OCB" "$REPOSNAME"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "travis.prjname (OCB)" "OCB" "$PKGNAME"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "travis.prjpath (OCB)" "$LCL_OE_ROOT" "$PRJPATH"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    if [ ${opt_dry_run:-0} -eq 0 ]; then
      result_testenv "2"
      revaluate_travis
      FLOG_ECHO=echo   # revaluate_travis update FLOG_ECHO and disable test output
      result_testenv "2"
    fi
    test_result "travis.pkgpath (unported)" "$LCL_OE_PKGPATH2" "$PKGPATH"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "travis.reposname (unported)" "$LCL_OE_REPOS" "$REPOSNAME"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "travis.prjname (unported)" "$LCL_OE_PKGNAME" "$PKGNAME"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    test_result "travis.prjpath (unported)" "$LCL_OE_PRJPATH" "$PRJPATH"
    s=$?; [ ${s-0} -ne 0 ] && sts=$s
    restore_testenv
    return $sts
}

Z0BUG_init
parseoptest -l$TESTDIR/test_travis_emulator.log "$@"
sts=$?
[[ $sts -ne 127 ]] && exit $sts
for p in z0librc odoorc travisrc zarrc z0testrc; do
  if [[ -f $RUNDIR/$p ]]; then
    [[ $p == "z0librc" ]] && Z0LIBDIR="$RUNDIR" && source $RUNDIR/$p
    [[ $p == "odoorc" ]] && ODOOLIBDIR="$RUNDIR" && source $RUNDIR/$p
    [[ $p == "travisrc" ]] && TRAVISLIBDIR="$RUNDIR" && source $RUNDIR/$p
    [[ $p == "zarrc" ]] && ZARLIB="$RUNDIR" && source $RUNDIR/$p
    [[ $p == "z0testrc" ]] && Z0TLIBDIR="$RUNDIR" && source $RUNDIR/$p
  fi
done


UT1_LIST=""
UT_LIST=""
Z0BUG_setup
[[ "$(type -t Z0BUG_setup)" == "function" ]] && Z0BUG_setup
Z0BUG_main_file "$UT1_LIST" "$UT_LIST"
sts=$?
[[ "$(type -t Z0BUG_teardown)" == "function" ]] && Z0BUG_teardown
exit $sts


