source: java/Regression.java @ 811b6a4a

abac0-leakabac0-meimei-idmei-rt0-nmei_rt0tvf-new-xml
Last change on this file since 811b6a4a was 811b6a4a, checked in by Ted Faber <faber@…>, 12 years ago

Bit gets regression

  • Property mode set to 100644
File size: 1.8 KB
Line 
1import java.io.*;
2import java.util.*;
3
4import net.deterlab.abac.*;
5import net.deterlab.abac.regression.*;
6
7
8/**
9 * Simple test of the native Java implementation of ABAC. Loads credentials
10 * from an rt0 file and runs a query against them.
11 */
12public class Regression {
13
14    static RegressionTest[] tests = new RegressionTest[] {
15        new WriteCreds("net.deterlab.abac.GENICredential"),
16        new WriteCreds("net.deterlab.abac.X509Credential"),
17        new ReadCreds("e0-check-geni.xml", "Acme-check-geni.pem", 1),
18        new ReadCreds("e0-check-x509.der", "Acme-check-x509.pem", 1),
19        new ReadCreds("priv.xml", "issuer.pem", 6),
20        new RocketsTest("Rockets test"),
21        new ExperimentTest("Experiment test"),
22        new BigTest("Big test", 20),
23    };
24
25    public static void fatal(String s) {
26        if (s != null ) 
27            System.out.println(s);
28        System.exit(20);
29    }
30
31    public static boolean clearDir(File d) {
32        for (String fn: d.list() ) {
33            File f = new File(d, fn);
34
35            if ( f.isDirectory() ) 
36                if ( !clearDir(f) ) return false;
37            if ( !f.delete() ) return false;
38        }
39        return true;
40    }
41
42
43    public static void main(String[] args) throws IOException {
44        if (args.length < 2 ) 
45            fatal("Usage Regression regression_data_dir scratch");
46
47        File data = new File(args[0]);
48        File scratch = new File(args[1]);
49
50        if ( !data.isDirectory() ) 
51            fatal(data + " is not a directory");
52        if ( !scratch.isDirectory() ) 
53            fatal(scratch + " is not a directory");
54
55        int i = 0;
56        for (RegressionTest test: tests) {
57            File testDir = new File(scratch, "test" +i);
58            if ( testDir.isDirectory()) 
59                clearDir(testDir);
60            if (!testDir.mkdir()) 
61                fatal("Cannot make " +testDir);
62
63            if ( test.runTest(data, testDir)) 
64                System.out.println(test.getName() + " Passed.");
65            else 
66                fatal(test.getName() + " Failed: " + test.getReason());
67            i++;
68        }
69        System.exit(0);
70    }
71}
Note: See TracBrowser for help on using the repository browser.