#!/bin/sh

IWLSbench=../../Examples/IWLS
PARSER='grep -vE ^\*|^Flattener|^RTG|^SAT|^$'
EXDIR=../../Examples

clear
rm -rf lib.defs gsclib opencores *.dot *.ps
 
# create benchmarks in correct format and run
lef2oa -DMSystem oaDMFileSys -lef $IWLSbench/library/GSCLib_3.0.lef -lib gsclib
${OAG_VALGRIND} ../../Func/funcTest/funcTest -lib gsclib -view abstract -liberty $IWLSbench/library/GSCLib_3.0.lib -save -reuse

RETURN=0
for I in test_*.in; do
    
    J=`basename $I .in`
    rm $J.out
    echo -n "$J"
    echo
    ${OAG_VALGRIND} verilog2oa -DMSystem oaDMFileSys -verilog netlist/$J.v -lib opencores -refLibs gsclib -refViews abstract
    ${OAG_VALGRIND} ../redunRemove/redunRemove -lib opencores -cell $J -verbose | $PARSER > $J.out 
   
    if diff $J.out $J.gold ; then
      echo "PASSED"
      RETURN=0
    else
      echo "FAILED ***"
      RETURN=1
    fi
    

    #for printing out the test graphs
    sed -e "s/G/flat_$J/" flat.dot > flat_$J.dot 
    sed -e "s/G/after_$J/" after.dot > after_$J.dot

    #dot -Tps flat_$J.dot -o flat_$J.ps
    #dot -Tps after_$J.dot -o after_$J.ps  
    
    #gv flat_$J.ps &
    #gv after_$J.ps &

done


exit $RETURN
