Changeset 2882


Ignore:
Timestamp:
Feb 1, 2013, 9:05:25 PM (6 years ago)
Author:
ksherdy
Message:

Added partial standalone Junit test.

Location:
proto/juncoTestHarness/src
Files:
2 added
8 edited

Legend:

Unmodified
Added
Removed
  • proto/juncoTestHarness/src/applications/JuncoTestDriver.java

    r2877 r2882  
    66import java.util.Properties;
    77import java.util.concurrent.TimeoutException;
    8 import command.CommandRunner;
     8
     9import command.ASMEmuCommand;
     10import command.Command;
    911
    1012
     
    1618        public static void main(String[] args) {
    1719               
     20                StringBuffer stdout = null;
     21                StringBuffer stderr = null;
     22               
    1823                try {
    19                         int i = CommandRunner.command(JuncoTestSuiteSetup.ASMEmu, true, true, 10000);
    20                         System.out.print(i);
     24                        (new ASMEmuCommand()).execute("/home/ken/Courses/2013/Spring/CMPT379/Development/workspace/juncoTestHarness/output/junco1/tshermer/other/good_booleanComparisons.asm", JuncoTestSuiteSetup.TIMEOUT);
    2125                } catch (IOException e) {
    2226                        // TODO Auto-generated catch block
     
    2832                        // TODO Auto-generated catch block
    2933                        e.printStackTrace();
    30                 }
    31                
     34                }               
    3235        }
     36}
    3337
    34 }
  • proto/juncoTestHarness/src/harness/JuncoParameterizedTest.java

    r2879 r2882  
    77
    88
    9 import harness.JuncoTestSuiteSetup.AUT;
     9import harness.JuncoTestSuiteSetup.ApplicationsUnderTest;
    1010import harness.JuncoTestSuiteSetup.Junco1TestCategories;
    1111import harness.helpers.JuncoTestAssert;
     
    1313
    1414import java.io.File;
     15import java.io.IOException;
    1516import java.util.ArrayList;
    1617import java.util.Arrays;
    1718import java.util.Collection;
    1819import java.util.List;
     20import java.util.concurrent.TimeoutException;
    1921
    2022import org.junit.After;
     
    4850        public static ArrayList<JuncoTestCase> juncoTestCases = new ArrayList<JuncoTestCase>();
    4951       
    50         private AUT aut;
     52        private ApplicationsUnderTest aut;
    5153        private JuncoTestCase juncoTestCase;
    5254
    53         public JuncoParameterizedTest (AUT aut, JuncoTestCase juncoTestCase) {
     55        public JuncoParameterizedTest (ApplicationsUnderTest aut, JuncoTestCase juncoTestCase) {
    5456                this.aut = aut;
    5557                this.juncoTestCase = juncoTestCase;
     
    6769
    6870        @Parameters
    69         public static Collection<Object []> data() {
     71        public static Collection<Object []> data() throws IOException, InterruptedException, TimeoutException {
    7072               
    7173                for(Junco1TestCategories testCategory : Junco1TestCategories.values()) {
    72                         juncoTestCases.addAll(
    73                                         JuncoTestCasesBuilder.buildJuncoTestCases(testCategory.getFilePath(),
    74                                                                                                                           testCategory.getCategory(),
    75                                                                                                                           JuncoTestSuiteSetup.JUNCO1_BASE_OUTPUT_DIRECTORY
    76                                                                                                                           + File.separator + testCategory.getCategory()));
     74                        String targetDirectoryFilePath = JuncoTestSuiteSetup.JUNCO1_BASE_OUTPUT_DIRECTORY
     75                                                                                                + File.separator + testCategory.getCategory();
     76                       
     77                        juncoTestCases.addAll(JuncoTestCasesBuilder.buildJuncoTestCases(testCategory.getFilePath(), targetDirectoryFilePath));
    7778                }
    7879               
    79                 Collection<Object[]> juncoTestCasesCollection = juncoTestCasesCollection = new ArrayList<Object []>();
     80                Collection<Object[]> parameterizedTestsCollection = new ArrayList<Object []>();
    8081               
    81                 for(AUT aut : AUT.values()) {
     82                for(ApplicationsUnderTest aut : ApplicationsUnderTest.values()) {
    8283                        for(JuncoTestCase juncoTestCase: juncoTestCases) {
    8384                                Object [] juncoArray = new Object[2];
    8485                                juncoArray[0] = aut;
    8586                                juncoArray[1] = juncoTestCase;
    86                                 juncoTestCasesCollection.add(juncoArray);
     87                                parameterizedTestsCollection.add(juncoArray);
    8788                        }
    8889                }
    8990               
    90                 return juncoTestCasesCollection;
     91                return parameterizedTestsCollection;
    9192        }               
    9293               
     
    9495    public void JuncoTest() {
    9596        System.out.println("JuncoTest()");
     97       
     98       
    9699        System.out.println(aut);
    97100                System.out.println(juncoTestCase);
     101               
     102               
    98103                JuncoTestAssert.assertPass();
    99104    }
  • proto/juncoTestHarness/src/harness/JuncoTestSuiteSetup.java

    r2877 r2882  
    1212        public static final long TIMEOUT                                                        = 10000;
    1313       
     14        public static final String JUNCO_EXT    = ".junco";
     15        public static final String ASM_EXT      = ".asm";
     16       
    1417    ////////////////////////////////////////////////////////////////////////////////
    1518        // Application Under Test
    16         public static enum AUT {
    17                 SHERMER("../junco/bin/"),
    18                 KSHERDY("../junco/bin/");
     19        public static enum ApplicationsUnderTest {
     20                SHERMER("../junco/bin/");
     21                //KSHERDY("../junco/bin/");
    1922               
    2023                private String filePath;
    2124               
    22                 AUT(String filePath) {
     25                ApplicationsUnderTest(String filePath) {
    2326                        this.filePath = filePath;
    2427                }
     
    2730                        return filePath;
    2831                }
    29                
    3032               
    3133        }
     
    4143        public static enum Junco1TestCategories {
    4244       
    43                 PRECEDENCE(JUNCO1_BASE_TEST_DIRECTORY + "precedence", 100);
     45                //PRECEDENCE(JUNCO1_BASE_TEST_DIRECTORY + "precedence", 100);
    4446                //TYPECHECKING(JUNCO1_BASE_TEST_DIRECTORY + "typechecking", 25),
    45                 //OTHER(JUNCO1_BASE_TEST_DIRECTORY + "other", 25);
     47                OTHER(JUNCO1_BASE_TEST_DIRECTORY + "other", 100);
    4648       
    4749                private File file;
  • proto/juncoTestHarness/src/harness/helpers/JuncoTestCasesBuilder.java

    r2878 r2882  
    99import java.util.concurrent.TimeoutException;
    1010
    11 import command.JuncoCompilerCommandRunner;
     11import command.ASMEmuCommand;
     12import command.Command;
     13import command.JuncoCompilerCommand;
    1214
    1315import testcase.JuncoTestCase;
     
    1719public class JuncoTestCasesBuilder {
    1820       
     21       
     22        public static ArrayList<JuncoTestCase> buildJuncoTestCases(String testDirectory, String targetDirectoryFilePath) throws IOException, InterruptedException, TimeoutException {
     23               
     24        File testDirectoryFile = new File(testDirectory);
     25       
     26        ArrayList<JuncoTestCase> juncoTestCases = new ArrayList<JuncoTestCase>();
     27        for(File file : testDirectoryFile.listFiles()) {                               
     28                if(file.isFile() && file.getName().endsWith(JuncoTestSuiteSetup.JUNCO_EXT)) {
     29                        JuncoTestCase juncoTestCase = buildJuncoTestCase(file, new File(targetDirectoryFilePath));
     30                        juncoTestCases.add(juncoTestCase);
     31                }
     32        }
     33       
     34        return juncoTestCases;
     35        }
     36
     37        public static JuncoTestCase buildJuncoTestCase(File juncoFile, File targetDirectory) throws IOException, InterruptedException, TimeoutException {
     38               
     39                JuncoCompilerCommand juncoCmd = new JuncoCompilerCommand();
     40               
     41                juncoCmd.execute(JuncoTestSuiteSetup.JUNCO_REFERENCE_COMPILER_DIR, 
     42                                JuncoTestSuiteSetup.JUNCO_COMPILER_FQNAME,
     43                                juncoFile.getAbsolutePath(),
     44                                targetDirectory.getAbsolutePath(),
     45                                JuncoTestSuiteSetup.TIMEOUT);
     46
     47                System.out.println(juncoCmd.getStdout());
     48                System.out.println(juncoCmd.getStderr());
     49                               
     50                JuncoTestType juncoTestType = JuncoTestTypeFactory.getJuncoTestType(juncoFile.getName());       
     51               
     52                JuncoTestCase juncoTestCase = new JuncoTestCase(juncoFile, targetDirectory.getName(), juncoTestType);
     53
     54                 switch (juncoTestType) {
     55                case GOOD:
     56                       
     57                        String asmFilePath = targetDirectory  + "/" + juncoTestCase.getName() + JuncoTestSuiteSetup.ASM_EXT;
     58                       
     59                        ASMEmuCommand AsmCmd = new ASMEmuCommand();
     60                        AsmCmd.execute(asmFilePath, JuncoTestSuiteSetup.TIMEOUT);
     61                       
     62                        juncoTestCase.setExpectedResult(AsmCmd.getStdout());
     63                       
     64                        System.out.println(AsmCmd.getStdout());
     65                        System.out.println(AsmCmd.getStderr());
     66                       
     67                        break;
     68                       
     69                case RUNTIME_ERROR:
     70                        System.out.println(JuncoTestType.RUNTIME_ERROR);
     71                        juncoTestCase.setExpectedResult(JuncoTestType.RUNTIME_ERROR.toString());
     72                        break;
     73                       
     74                case COMPILE_TIME_ERROR:       
     75                        System.out.println(JuncoTestType.COMPILE_TIME_ERROR);
     76                        juncoTestCase.setExpectedResult(JuncoTestType.COMPILE_TIME_ERROR.toString());
     77                        break;
     78                 }
     79               
     80                return juncoTestCase;
     81               
     82        }
     83       
     84        /*
    1985        public static void seedJuncoTestCases(String testDirectory, String targetDirectory) {
    2086
     
    44110                                        // TODO Auto-generated catch block
    45111                                        e.printStackTrace();
    46                                 }
    47                        
    48                         }
     112                                }       
     113                        }               
    49114                }
    50115        }
    51                
    52116        }
     117        */
    53118       
    54        
    55         public static ArrayList<JuncoTestCase> buildJuncoTestCases(String testDirectory, String category, String targetDirectory) {
    56                
    57         File testDirectoryFile = new File(testDirectory);
    58        
    59         ArrayList<JuncoTestCase> juncoTestCases = new ArrayList<JuncoTestCase>();
    60         for(File file : testDirectoryFile.listFiles()) {                               
    61                 if(file.isFile() && file.getName().endsWith(".junco")) {
    62                         JuncoTestCase juncoTestCase = buildJuncoTestCase(file, category, targetDirectory);
    63                         juncoTestCases.add(juncoTestCase);
    64                 }
    65         }
    66        
    67         return juncoTestCases;
    68         }
    69 
    70         private static JuncoTestCase buildJuncoTestCase(File juncoFile, String category, String targetDirectory) {
    71                 try {
    72                         JuncoCompilerCommandRunner.execute(JuncoTestSuiteSetup.JUNCO_REFERENCE_COMPILER_DIR, 
    73                                         JuncoTestSuiteSetup.JUNCO_COMPILER_FQNAME,
    74                                         juncoFile.getAbsolutePath(),
    75                                         targetDirectory,
    76                                         JuncoTestSuiteSetup.TIMEOUT);
    77                 } catch (IOException e) {
    78                         // TODO Auto-generated catch block
    79                         e.printStackTrace();
    80                 } catch (InterruptedException e) {
    81                         // TODO Auto-generated catch block
    82                         e.printStackTrace();
    83                 } catch (TimeoutException e) {
    84                         // TODO Auto-generated catch block
    85                         e.printStackTrace();
    86                 }
    87                
    88                 JuncoTestType juncoTestType = JuncoTestTypeFactory.getJuncoTestType(juncoFile.getName());       
    89                 JuncoTestCase juncoTestCase = new JuncoTestCase(juncoFile, category, juncoTestType);
    90                
    91                 return juncoTestCase;
    92                
    93         }
    94 
    95         private static String makeCategoryDirFilePath(String baseDir, String category) {
    96                
    97                 String categoryDir = baseDir;
    98                
    99                 if(!categoryDir.endsWith(File.separator)) {
    100                         categoryDir += File.separator;
    101                 }
    102                 categoryDir += category;
    103                 categoryDir += File.separator;
    104                
    105                 return categoryDir;
    106         }
    107        
     119        /*
    108120        private static ArrayList<File> listVisibleDirs(String absDirPath) {
    109121               
     
    121133        return visibleDirs;
    122134        }
     135        */
    123136       
     137        /*
     138        private static String makeCategoryDirFilePath(String baseDir, String category) {
     139               
     140                String categoryDir = baseDir;
     141               
     142                if(!categoryDir.endsWith(File.separator)) {
     143                        categoryDir += File.separator;
     144                }
     145                categoryDir += category;
     146                categoryDir += File.separator;
     147               
     148                return categoryDir;
     149        }
     150        */
    124151}
  • proto/juncoTestHarness/src/logging/JuncoTestLoggerMessage.java

    r2842 r2882  
    22
    33public class JuncoTestLoggerMessage {
    4        
     4        // Not implemented.
    55}
  • proto/juncoTestHarness/src/testcase/JuncoTestCase.java

    r2877 r2882  
    5252        }
    5353
     54        public String getName() {
     55                String name = this.testFile.getName();
     56                return  name.substring(0, name.lastIndexOf("."));       
     57        }
     58       
    5459        public String toString() {
    5560                 
  • proto/juncoTestHarness/src/testcase/JuncoTestType.java

    r2877 r2882  
    33public enum JuncoTestType {
    44       
    5         PASS, RUNTIME_ERROR, COMPILE_TIME_ERROR;
     5        GOOD, RUNTIME_ERROR, COMPILE_TIME_ERROR;
    66                       
    77        @Override
  • proto/juncoTestHarness/src/testcase/JuncoTestTypeFactory.java

    r2877 r2882  
    44public class JuncoTestTypeFactory {
    55
    6         private static final String PASS_PREFIX = "good_";
     6        private static final String GOOD_PREFIX = "good_";
    77        private static final String COMPILE_TIME_ERROR_PREFIX = "err_";
    88        private static final String RUNTIME_ERROR_PREFIX = "rte_";
     
    1010    public static JuncoTestType getJuncoTestType(String fileName) {
    1111   
    12         if (fileName.startsWith(PASS_PREFIX)) {
     12        if (fileName.startsWith(GOOD_PREFIX)) {
    1313               
    14                 return JuncoTestType.PASS;
     14                return JuncoTestType.GOOD;
    1515               
    1616        } else if (fileName.startsWith(COMPILE_TIME_ERROR_PREFIX)) {
     
    2626                String msg = String.format("Message: %s Expected: %s Actual: %s",
    2727                                "Unknown test type.",
    28                                 PASS_PREFIX + " || " + COMPILE_TIME_ERROR_PREFIX + " || " + RUNTIME_ERROR_PREFIX,
     28                                GOOD_PREFIX + " || " + COMPILE_TIME_ERROR_PREFIX + " || " + RUNTIME_ERROR_PREFIX,
    2929                                fileName);
    3030               
Note: See TracChangeset for help on using the changeset viewer.