# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
# under the terms of the License "Eclipse Public License v1.0"
# which accompanies this distribution, and is available
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
#
# Initial Contributors:
# Nokia Corporation - initial contribution.
#
# Contributors:
#
# Description:
#

init()
    {
    let totalno=0;
    let passno=0;
    let failno=0;
    }

# unhash command to try removing a nonexisting command from hash table
test_unhash2()
{
let totalno=totalno+1
echo "Test $totalno: unhash with no options and with a nonexisting hashtable entry"
unhash dispdirs 
ret=$?
if [ $ret = 1 ]
then
     {
     echo "PASS"
     let passno=passno+1
     }
else
     {
     echo "FAIL: Expected return value 1, but  returned $ret"
     let failno=failno+1
     }
fi
}

test_unhash3()
{
let totalno=totalno+1
echo "Test $totalno: unhash with -d option and with a variable which is cdable"
setopt cdablevars
foo=/dirstest
cd foo
unhash -d foo
ret=$?
if [ $ret = 0 ]
then
     {
     echo "PASS"
     let passno=passno+1
     }
     else
     {
     echo "FAIL: Expected return value 0, but  returned $ret"
     let failno=failno+1
     }
fi
unsetopt cdablevars
}

# unhash command to try removing a nonexisting command from hash table
test_unhash4()
{
let totalno=totalno+1
echo "Test $totalno: unhash with -m option and with a nonexisting hashtable entry pattern"
unhash -m xdghsd
ret=$?
if [ $ret = 1 ]
then
     {
     echo "PASS"
     let passno=passno+1
     }
else
     {
     echo "FAIL: Expected return value 1, but  returned $ret"
     let failno=failno+1
     }
fi
}

func1()
{
}

# unhash command to try removing an existing patterned entries from hash table without using correct option -f alongside
test_unhash5()
{
let totalno=totalno+1
echo "Test $totalno: unhash with -m option and with an existing hashtable entry pattern for function"
unhash -m func1
ret=$?
if [ $ret = 1 ]
then
     {
     echo "PASS"
     let passno=passno+1
     }
else
     {
     echo "FAIL: Expected return value 1, but  returned $ret"
     let failno=failno+1
     }
fi
}

# unhash command to try removing an existing patterned entries from hash table with right option -f
test_unhash6()
{
let totalno=totalno+1
echo "Test $totalno: unhash with -mf option and with an existing hashtable entry pattern for function"
unhash -mf func1
ret=$?
if [ $ret = 0 ]
then
     {
     echo "PASS"
     let passno=passno+1
     }
else
     {
     echo "FAIL: Expected return value 0, but  returned $ret"
     let failno=failno+1
     }
fi
}

report()
    {
    echo "#############################################################################"
    echo "Total tests : $totalno"
    echo "Passed      : $passno"
    echo "Failed      : $failno"
    echo "#############################################################################"
    }

init
test_unhash2
test_unhash3
test_unhash4
test_unhash5
test_unhash6
report
