#! /bin/bash function cleanup { tj3client --silent terminate 2> /dev/null sleep 2 #killall -9 tj3d 2> /dev/null /bin/rm -rf timesheets.log \ TimeSheets TimeSheetTemplates \ sender.log receiver.log summary.log tj3d.log } function error { echo "ERROR: $1" exit 1 } function check { count=`grep "$1" "$2" | wc -l` if test $count != $3 ; then error "$2 contains ${count} times \"${1}\" instead of $3 times!" fi } cleanup tj3d --silent tj3client --silent add project.tjp || error "add1" # Run a sender test. tj3ts_sender --dryrun -e 2002-03-01 > sender.log || error "sender" check "From: foo@bar.com" sender.log 6 check "Content-Disposition: attachment;" sender.log 6 check "^timesheet " sender.log 6 # Run a receiver test tj3ts_receiver --dryrun < dev2_mail1 >> receiver.log || error "rec1" tj3ts_receiver --dryrun < dev2_mail2 >> receiver.log || error "rec2" check "From: foo@bar.com" receiver.log 2 check "Report from " receiver.log 2 check "Green" receiver.log 6 # Update the project with the server to include the submitted time # sheets. This is only to test the time sheet data surpression. tj3client --silent add project.tjp TimeSheets/all.tji || error "add2" # Run the summary report tj3ts_summary --dryrun -e 2002-03-01 >> summary.log || error "summary" check "To: archive@bar.com" summary.log 2 check "To: crew@bar.com" summary.log 1 check "From: foo@bar.com" summary.log 7 check "Message-ID:" summary.log 8 check "The following 5 person(s) have not yet submitted their time sheets" summary.log 4 check "Weekly Report from" summary.log 4 check "Green" summary.log 12 check "Your time sheet for the period ending 2002-03-01 is overdue" summary.log 5 tj3client --silent terminate sleep 2 check "TaskJuggler daemon is listening" tj3d.log 1 check "TaskJuggler daemon terminated" tj3d.log 1 check "Project server is listening" tj3d.log 2 check "Project server terminated" tj3d.log 2 check "Report server is listening" tj3d.log 10 check "Report server terminated" tj3d.log 10 check "ERROR" tj3d.log 0 check "WARN" tj3d.log 0 check ERROR timesheets.log 0 check WARN timesheets.log 1 check INFO timesheets.log 44 check "Your weekly time sheet template" timesheets.log 6 cleanup exit 0