/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package edu.isi.pegasus.planner.parser.dax;
import edu.isi.pegasus.common.logging.LogManager;
import edu.isi.pegasus.planner.classes.ADag;
import edu.isi.pegasus.planner.classes.Job;
import edu.isi.pegasus.planner.classes.PegasusBag;
import edu.isi.pegasus.planner.common.PegasusProperties;
import edu.isi.pegasus.planner.parser.DAXParserFactory;
import edu.isi.pegasus.planner.parser.Parser;
import edu.isi.pegasus.planner.partitioner.graph.GraphNode;
import edu.isi.pegasus.planner.test.DefaultTestSetup;
import edu.isi.pegasus.planner.test.TestSetup;
import java.io.File;
import java.util.LinkedList;
import org.junit.After;
import org.junit.AfterClass;
import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
/**
*
* @author vahi
*/
public class DAXParser3Test {
/**
* The properties used for this test.
*/
private static final String PROPERTIES_BASENAME="properties";
private PegasusBag mBag;
private PegasusProperties mProps;
private LogManager mLogger;
private TestSetup mTestSetup;
/**
* The parsed DAX file
*/
private ADag mParsedDAX;
@BeforeClass
public static void setUpClass() {
}
@AfterClass
public static void tearDownClass() {
}
/**
* Setup the logger and properties that all test functions require
*/
@Before
public final void setUp() {
mTestSetup = new DefaultTestSetup();
mBag = new PegasusBag();
mTestSetup.setInputDirectory( this.getClass() );
System.out.println( "Input Test Dir is " + mTestSetup.getInputDirectory() );
mProps = mTestSetup.loadPropertiesFromFile( PROPERTIES_BASENAME, new LinkedList() );
mBag.add( PegasusBag.PEGASUS_PROPERTIES, mProps );
mLogger = mTestSetup.loadLogger( mProps );
mLogger.logEventStart( "test.planner.parser.dax", "setup", "0" );
mBag.add( PegasusBag.PEGASUS_LOGMANAGER, mLogger );
/* instantiate the DAX Parser and start parsing */
String dax = new File( mTestSetup.getInputDirectory(), "blackdiamond.dax" ).getAbsolutePath();
Parser p = (Parser)DAXParserFactory.loadDAXParser( mBag, "DAX2CDAG", dax );
Callback cb = ((DAXParser)p).getDAXCallback();
p.startParser( dax );
mParsedDAX = (ADag)cb.getConstructedObject();
mLogger.logEventCompletion();
}
/**
*
*/
@Test
public void testNoArgumentsTag() {
int set = 1;
//test with no deep storage structure enabled
mLogger.logEventStart( "test.planner.parser.dax", "set", Integer.toString(set++) );
GraphNode n = mParsedDAX.getNode("preprocess_j1");
Job j = (Job)n.getContent();
String args = j.getArguments();
//System.out.println( "@" + args + "@" + args.length() + args.charAt( 0 ));
assertEquals( "", args);
mLogger.logEventCompletion();
}
/**
*
*/
@Test
public void testEmptyArgumentsTag() {
int set = 1;
//test with no deep storage structure enabled
mLogger.logEventStart( "test.planner.parser.dax", "set", Integer.toString(set++) );
GraphNode n = mParsedDAX.getNode("findrange_j2");
Job j = (Job)n.getContent();
String args = j.getArguments();
//System.out.println( "@" + args + "@" + args.length() + args.charAt( 0 ));
assertEquals( "", args);
mLogger.logEventCompletion();
}
/**
*
*/
@Test
public void testArgumentsWithFileTagWithSpaces() {
int set = 1;
//test with no deep storage structure enabled
mLogger.logEventStart( "test.planner.parser.dax", "set", Integer.toString(set++) );
GraphNode n = mParsedDAX.getNode("findrange_j3");
Job j = (Job)n.getContent();
String args = j.getArguments();
System.out.println( "@" + args + "@" + args.length() );
assertEquals( "-a findrange -T 60 -i f.b2 -o f.c2", args);
mLogger.logEventCompletion();
}
/**
*
*/
@Test
public void testArgumentsWithFileTagWithNoSpaces() {
int set = 1;
//test with no deep storage structure enabled
mLogger.logEventStart( "test.planner.parser.dax", "set", Integer.toString(set++) );
GraphNode n = mParsedDAX.getNode("analyze_j4");
Job j = (Job)n.getContent();
String args = j.getArguments();
System.out.println( "@" + args + "@" + args.length() );
assertEquals( "-a analyze -T 60 -if.c1,f.c2 -of.d", args);
mLogger.logEventCompletion();
}
/**
*
*/
@Test
public void testLIGOArgumentsWithFileTagWithNoSpaces() {
int set = 1;
//test with no deep storage structure enabled
mLogger.logEventStart( "test.planner.parser.dax", "set", Integer.toString(set++) );
GraphNode n = mParsedDAX.getNode("inspiral-full-data_j5");
Job j = (Job)n.getContent();
String args = j.getArguments();
System.out.println( "@" + args + "@" + args.length() );
assertEquals( "--frame-files --V1:V-HrecV2-967640000-10000.gwf --L1:L-L1_LDAS_C02_L2-967648128-128.gwf --L1:L-L1_LDAS_C02_L2-967648256-128.gwf --output V1H1L1-INSPIRAL_FULL_DATA_JOB0-967648572-1105.xml.gz --bank-file H1L1V1-PREGEN_TMPLTBANK_SPLITTABLE_BANK0-967593543-86400.xml.gz --user-tag FULL_DATA",
args);
mLogger.logEventCompletion();
}
@After
public void tearDown() {
mLogger = null;
mProps = null;
mBag = null;
mTestSetup = null;
}
}