#!/usr/bin/perl -w
@def=("simple", "thread", "mpi");
splice(@def,0,scalar(@ARGV),@ARGV);
if($def[0] eq "petal" || scalar(@ARGV)==0)
{
    $remote=1;
    @def=("simple", "thread", "mpi");
}
else
{
    $remote=0;
}
if($def[0] eq "all" || scalar(@ARGV)==0)
{
    @def=("simple", "thread", "mpi");
}
else
{
    if(scalar(@ARGV)==1)
    {
	$def[1] = $def[2] = "";
    }
    if(scalar(@ARGV)==2)
    {
	$def[2] = "";
    }
}
if(($def[0] eq "simple") || ($def[1] eq "simple") || ($def[2] eq "simple"))
{
    if($remote==1)
    {
	system("ssh petal 'cd \$HOME/src/migrate-new; make clean; make pretty'"); 
    }
    else
    {
	system("cd \$HOME/src/migrate-new; make clean; make pretty");
    }
    system("cd \$HOME/src/migrate-new/testsuite;\
	   (time ../migrate-n parmfile.iam -nomenu) 2>&1 > iam.log; \
	   (time ../migrate-n parmfile.ssm -nomenu) 2>&1 > ssm.log;\
	   (time ../migrate-n parmfile.dna -nomenu) 2>&1 > dna.log;\
	   (time ../migrate-n parmfile.iam-ml -nomenu) 2>&1 > iam-ml.log;\
	   (time ../migrate-n parmfile.ssm-ml -nomenu) 2>&1 > ssm-ml.log;\
	   (time ../migrate-n parmfile.dna-ml -nomenu) 2>&1 > dna-ml.log");
}
if(($def[0] eq "thread") || ($def[1] eq "thread") || ($def[2] eq "thread"))
{
    system("cd \$HOME/src/migrate-new; make clean;make thread-pretty;\
cd \$HOME/src/migrate-new/testsuite;\
(time ../migrate-n parmfile.iam -nomenu) 2>&1 >> iam.log;\
    (time ../migrate-n parmfile.ssm -nomenu) 2>&1 >> ssm.log;\
    (time ../migrate-n parmfile.dna -nomenu) 2>&1 >> dna.log;\
    (time ../migrate-n parmfile.iam-ml -nomenu) 2>&1 >> iam-ml.log;\
    (time ../migrate-n parmfile.ssm-ml -nomenu) 2>&1 >> ssm-ml.log;\
    (time ../migrate-n parmfile.dna-ml -nomenu) 2>&1 >> dna-ml.log");
}
exit;

if(($def[0] eq "mpi") || ($def[1] eq "mpi") || ($def[2] eq "mpi"))
{
    system("cd \$HOME/src/migrate-new;\
make clean;\
make mpis-pretty;\
make mpis-pretty \"MPICC=mpic++\";\
cd \$HOME/src/migrate-new/testsuite;\
(time mpirun -np 4 ../migrate-n parmfile.iam -nomenu) 2>&1 >> iam.log;\
(time mpirun -np 4 ../migrate-n parmfile.ssm -nomenu) 2>&1 >> ssm.log;\
(time mpirun -np 4 ../migrate-n parmfile.dna -nomenu) 2>&1 >> dna.log;\
(time mpirun -np 4  ../migrate-n parmfile.iam-ml -nomenu) 2>&1 >> iam-ml.log;\
(time mpirun -np 4  ../migrate-n parmfile.ssm-ml -nomenu) 2>&1 >> ssm-ml.log;\
(time mpirun -np 4  ../migrate-n parmfile.dna-ml -nomenu) 2>&1 >> dna-ml.log");
}
system("egrep \\(ERROR\\|WARNING\\) *.log > report");

 
