view tests/run.d @ 1:2168f4cb73f1

First push
author johnsen@johnsen-desktop
date Fri, 18 Apr 2008 02:01:38 +0200
parents
children 59bfbaf8847f
line wrap: on
line source

module run.d;

import tango.io.Stdout,
       tango.io.FilePath,
       tango.sys.Process;


char[] prog = "./Dang";

void main(char[][] args)
{
    auto cPath = FilePath("tests");

    int succes, failure;

    foreach( path ; cPath.toList((FilePath path, bool isFolder){return isFolder;}))
    {
        Stdout(path.name)(":").newline;
        foreach( p ; path.toList((FilePath path, bool isFolder)
                    {
                        if(path.ext == "d" && path.name[0] != '.')
                            return true;
                        return false;
                    }))
        {
            auto test = new Test(p);
            bool result = test.run();
            if(result)
                succes++;
            else
                failure++;
        }
    }

    Stdout().newline.newline()
        ("Result:").newline()
        ("  - Succes:   ")(succes).newline()
        ("  - Failure:  ")(failure).newline;
}

class Test
{
    FilePath target;
    public this(FilePath target)
    {
        this.target = target;
    }

    public bool run()
    {
        auto process = new Process(prog,target.path~target.file);

        Stdout("  - ")(target.file)(".. ");

        process.execute;

        auto result = process.wait;
        if(result.status == 0)
        {
            Stdout("SUCCES").newline;
            return true;
        }
        else
        {
            Stdout("FAILURE").newline;
            return false;
        }
    }    
}