Author: [log in to unmask]
Date: Mon Nov 2 05:55:03 2015
New Revision: 3916
Log:
Use test data jar instead of file cache in integration tests.
Added:
java/trunk/integration-tests/src/test/java/org/hps/test/it/MCReconNoReadoutTest.java
java/trunk/integration-tests/src/test/java/org/hps/test/it/MCReconSteeringTest.java
java/trunk/integration-tests/src/test/java/org/hps/test/it/ReconSteeringTest.java
Modified:
java/trunk/integration-tests/ (props changed)
java/trunk/integration-tests/pom.xml
java/trunk/integration-tests/src/test/java/org/hps/test/it/EngRun2015ReconTest.java
java/trunk/integration-tests/src/test/java/org/hps/test/it/EvioToLcioTest.java
java/trunk/integration-tests/src/test/java/org/hps/test/it/ReadoutNoPileupTest.java
java/trunk/integration-tests/src/test/java/org/hps/test/it/ReadoutToLcioTest.java
java/trunk/integration-tests/src/test/java/org/hps/test/it/SimpleSvtReadoutTest.java
Modified: java/trunk/integration-tests/pom.xml
=============================================================================
--- java/trunk/integration-tests/pom.xml (original)
+++ java/trunk/integration-tests/pom.xml Mon Nov 2 05:55:03 2015
@@ -20,6 +20,21 @@
<artifactId>hps-distribution</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.hps</groupId>
+ <artifactId>hps-test-data</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <scope>test</scope>
+ <classifier>archive</classifier>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.hps</groupId>
+ <artifactId>hps-test-data</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <scope>test</scope>
+ <type>jar</type>
+ </dependency>
</dependencies>
<build>
<plugins>
@@ -27,13 +42,28 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
- <forkCount>1</forkCount>
- <reuseForks>false</reuseForks>
- <trimStackTrace>false</trimStackTrace>
- <excludes>
- <exclude>org/hps/test/it/DataQualityMonitorTest.java</exclude>
- </excludes>
+ <skipTests>true</skipTests>
</configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ <version>2.19</version>
+ <configuration>
+ <argLine>-server -Xmx2g -XX:MaxPermSize=512m -Djava.util.logging.config.class=org.hps.logging.config.TestLoggingConfig</argLine>
+ <forkMode>always</forkMode>
+ <includes>
+ <include>org/hps/test/it/*Test.java</include>
+ </includes>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ </execution>
+ </executions>
</plugin>
</plugins>
</build>
Modified: java/trunk/integration-tests/src/test/java/org/hps/test/it/EngRun2015ReconTest.java
=============================================================================
--- java/trunk/integration-tests/src/test/java/org/hps/test/it/EngRun2015ReconTest.java (original)
+++ java/trunk/integration-tests/src/test/java/org/hps/test/it/EngRun2015ReconTest.java Mon Nov 2 05:55:03 2015
@@ -2,44 +2,33 @@
import java.io.File;
import java.io.IOException;
-import java.net.URL;
import java.util.List;
import junit.framework.TestCase;
-import static junit.framework.TestCase.assertEquals;
-import static junit.framework.TestCase.assertTrue;
+import org.hps.data.test.TestDataUtility;
import org.hps.evio.EvioToLcio;
import org.lcsim.event.EventHeader;
import org.lcsim.event.ReconstructedParticle;
import org.lcsim.util.Driver;
-import org.lcsim.util.cache.FileCache;
import org.lcsim.util.loop.LCSimLoop;
import org.lcsim.util.test.TestUtil.TestOutputFile;
/**
- * Test to run the standard reconstruction on Engineering Run 2015 EVIO data.
- * Full energy electron candidate events were selected from pass1 output. The
- * current test runs the default reconstruction over the evio file then analyzes
- * the output lcio file. The current checks are minimal and need to be improved.
+ * Test to run the standard reconstruction on Engineering Run 2015 EVIO data. Full energy electron candidate events were
+ * selected from pass1 output. The current test runs the default reconstruction over the evio file then analyzes the
+ * output lcio file. The current checks are minimal and need to be improved.
*
* @author Norman A Graf
*/
-public class EngRun2015ReconTest extends TestCase
-{
-
- final static String fileLocation = "http://www.lcsim.org/test/hps-java/run5772_integrationTest.evio";
-//final static String fileLocation = "http://www.lcsim.org/test/hps-java/run5772_pass1_stripOneFee_5000Events.evio";
-
- public void testEngRun2015Recon() throws Exception
- {
- System.out.println("Caching file...");
- FileCache cache = new FileCache();
- File inputFile = cache.getCachedFile(new URL(fileLocation));
+public class EngRun2015ReconTest extends TestCase {
+
+ public void testEngRun2015Recon() throws Exception {
+ File inputFile = new TestDataUtility().getTestData("run5772_integrationTest.evio");
File outputFile = new TestOutputFile("EngRun2015ReconTest");
String args[] = {"-r", "-x", "/org/hps/steering/recon/EngineeringRun2015FullRecon_Pass2.lcsim", "-d",
- "HPS-EngRun2015-Nominal-v2", "-D", "outputFile=" + outputFile.getPath(), inputFile.getPath(), "-n",
- "1000"};
+ "HPS-EngRun2015-Nominal-v2", "-D", "outputFile=" + outputFile.getPath(), "-n", "1000",
+ inputFile.getPath()};
System.out.println("Running EngRun2015ReconTest.main ...");
System.out.println("writing to: " + outputFile.getPath());
long startTime = System.currentTimeMillis();
@@ -60,14 +49,12 @@
System.out.println("Done!");
}
- static class ReconCheckDriver extends Driver
- {
+ static class ReconCheckDriver extends Driver {
int nFail;
int nProcessed;
- public void process(EventHeader event)
- {
+ public void process(EventHeader event) {
boolean fail = false;
List<ReconstructedParticle> rps = event.get(ReconstructedParticle.class, "FinalStateParticles");
int nrp = rps.size();
@@ -108,8 +95,7 @@
// TODO add checks on quality of output (chi2, p, E, E/p matching, position matching, etc.)
}
- public void endOfData()
- {
+ public void endOfData() {
System.out.println(nFail + " of " + nProcessed + " events failed");
assertEquals("Expected no events to fail", nFail, 0);
}
Modified: java/trunk/integration-tests/src/test/java/org/hps/test/it/EvioToLcioTest.java
=============================================================================
--- java/trunk/integration-tests/src/test/java/org/hps/test/it/EvioToLcioTest.java (original)
+++ java/trunk/integration-tests/src/test/java/org/hps/test/it/EvioToLcioTest.java Mon Nov 2 05:55:03 2015
@@ -152,7 +152,7 @@
/**
* The default input file (large file at SLAC so the pom.xml file excludes this test on non-SLAC hosts).
*/
- private static final String INPUT_FILE = "/nfs/slac/g/hps3/data/engrun/evio/hps_005772.evio.0";
+ private static final String INPUT_FILE = "/nfs/slac/g/hps3/data/engrun2015/evio/hps_005772.evio.0";
/**
* The number of events that should be processed.
@@ -175,8 +175,8 @@
final TestOutputFile outputFile = new TestOutputFile(EvioToLcioTest.class, "hps_005772.slcio");
// Run the command line utility.
- final String[] args = new String[] {"-l", outputFile.getPath(), "-d", "HPS-EngRun2015-Nominal-v1", INPUT_FILE,
- "-r", "-x", "/org/hps/steering/EventMarker.lcsim"};
+ final String[] args = new String[] {"-l", outputFile.getPath(), "-d", "HPS-EngRun2015-Nominal-v1", "-r", "-x",
+ "/org/hps/steering/EventMarker.lcsim", INPUT_FILE};
System.out.println("Running EvioToLcio on " + INPUT_FILE);
Logger.getLogger("org.hps.evio").setLevel(Level.WARNING);
System.out.println("org.hps.evio logging level is " + Logger.getLogger("org.hps.evio").getLevel());
Added: java/trunk/integration-tests/src/test/java/org/hps/test/it/MCReconNoReadoutTest.java
=============================================================================
--- java/trunk/integration-tests/src/test/java/org/hps/test/it/MCReconNoReadoutTest.java (added)
+++ java/trunk/integration-tests/src/test/java/org/hps/test/it/MCReconNoReadoutTest.java Mon Nov 2 05:55:03 2015
@@ -0,0 +1,43 @@
+package org.hps.test.it;
+
+import java.io.File;
+
+import junit.framework.TestCase;
+
+import org.hps.data.test.TestDataUtility;
+import org.hps.job.JobManager;
+import org.lcsim.util.test.TestUtil.TestOutputFile;
+
+/**
+ * Test MC recon steering file without readout simulation.
+ *
+ * @author Jeremy McCormick, SLAC
+ */
+public class MCReconNoReadoutTest extends TestCase {
+
+ /**
+ * List of steering files to run.
+ */
+ static String[] STEERING_FILES = {
+ "/org/hps/steering/readout/HPSReconNoReadout.lcsim"
+ };
+
+ /**
+ * Test recon steering files.
+ * @throws Exception if any error occurs running the recon job
+ */
+ public void testSteeringFiles() throws Exception {
+
+ File inputFile = new TestDataUtility().getTestData("e-_1.056GeV_SLIC-v05-00-00_Geant4-v10-01-02_QGSP_BERT_HPS-EngRun2015-Nominal-v3.slcio");
+
+ for (String steeringFile : STEERING_FILES) {
+ System.out.println("running steering file " + steeringFile);
+ File outputFile = new TestOutputFile(new File(steeringFile).getName().replace(".lcsim", ""));
+ JobManager job = new JobManager();
+ job.addVariableDefinition("outputFile", outputFile.getPath());
+ job.addInputFile(inputFile);
+ job.setup(steeringFile);
+ job.run();
+ }
+ }
+}
Added: java/trunk/integration-tests/src/test/java/org/hps/test/it/MCReconSteeringTest.java
=============================================================================
--- java/trunk/integration-tests/src/test/java/org/hps/test/it/MCReconSteeringTest.java (added)
+++ java/trunk/integration-tests/src/test/java/org/hps/test/it/MCReconSteeringTest.java Mon Nov 2 05:55:03 2015
@@ -0,0 +1,61 @@
+package org.hps.test.it;
+
+import java.io.File;
+
+import junit.framework.TestCase;
+
+import org.hps.data.test.TestDataUtility;
+import org.hps.job.JobManager;
+import org.lcsim.util.test.TestUtil.TestOutputFile;
+
+/**
+ * Test that production MC recon steering files are not broken.
+ *
+ * @author Jeremy McCormick, SLAC
+ */
+public class MCReconSteeringTest extends TestCase {
+
+ /**
+ * List of steering files to run.
+ */
+ static String[] STEERING_FILES = {
+ "EngineeringRun2015FullReconMC_Pass2.lcsim",
+ "EngineeringRun2015FullReconMC.lcsim"
+ };
+
+ /**
+ * Test recon steering files.
+ * @throws Exception if any error occurs running the recon job
+ */
+ public void testSteeringFiles() {
+
+ File inputFile = new TestDataUtility().getTestData("tritrigv1-egsv3-triv2-g4v1_s2d6_HPS-EngRun2015-Nominal-v3_3.4.0_pairs1_1.slcio");
+
+ for (String steeringFile : STEERING_FILES) {
+ System.out.println("Running steering file " + steeringFile + " ...");
+ boolean failed = false;
+ try {
+ testSteering("/org/hps/steering/recon/" + steeringFile, inputFile);
+ System.out.println("Job with steering " + steeringFile + " ran okay!");
+ } catch (Exception e) {
+ System.out.println("caught exception: " + e.getMessage());
+ e.printStackTrace();
+ System.out.println("Job with steering " + steeringFile + " failed!");
+ failed = true;
+ }
+ System.out.println(steeringFile + " failed: " + failed);
+ }
+ }
+
+ private void testSteering(String steeringFile, File inputFile) {
+ File outputFile = new TestOutputFile(new File(steeringFile).getName().replace(".lcsim", ""));
+ JobManager job = new JobManager();
+ job.addVariableDefinition("outputFile", outputFile.getPath());
+ job.addVariableDefinition("detector", "HPS-EngRun2015-Nominal-v3");
+ job.addVariableDefinition("run", "5772");
+ job.addInputFile(inputFile);
+ job.setup(steeringFile);
+ job.run();
+ System.out.println("Job " + steeringFile + " processed " + job.getLCSimLoop().getTotalCountableConsumed() + " events.");
+ }
+}
Modified: java/trunk/integration-tests/src/test/java/org/hps/test/it/ReadoutNoPileupTest.java
=============================================================================
--- java/trunk/integration-tests/src/test/java/org/hps/test/it/ReadoutNoPileupTest.java (original)
+++ java/trunk/integration-tests/src/test/java/org/hps/test/it/ReadoutNoPileupTest.java Mon Nov 2 05:55:03 2015
@@ -5,6 +5,7 @@
import junit.framework.TestCase;
+import org.hps.data.test.TestDataUtility;
import org.hps.job.JobManager;
import org.lcsim.util.cache.FileCache;
import org.lcsim.util.test.TestUtil.TestOutputFile;
@@ -29,11 +30,8 @@
static final int nEvents = 100;
public void testReadoutNoPileup() throws Exception {
- new TestOutputFile(this.getClass().getSimpleName()).mkdir();
-
- FileCache cache = new FileCache();
- File inputFile = cache.getCachedFile(new URL("http://www.lcsim.org/test/hps-java/ReadoutNoPileupTest.slcio"));
-
+ new TestOutputFile(this.getClass().getSimpleName()).mkdir();
+ File inputFile = new TestDataUtility().getTestData("ReadoutNoPileupTest.slcio");
JobManager job = new JobManager();
job.addInputFile(inputFile);
job.addVariableDefinition("detector", "HPS-Proposal2014-v8-2pt2");
Modified: java/trunk/integration-tests/src/test/java/org/hps/test/it/ReadoutToLcioTest.java
=============================================================================
--- java/trunk/integration-tests/src/test/java/org/hps/test/it/ReadoutToLcioTest.java (original)
+++ java/trunk/integration-tests/src/test/java/org/hps/test/it/ReadoutToLcioTest.java Mon Nov 2 05:55:03 2015
@@ -1,12 +1,11 @@
package org.hps.test.it;
import java.io.File;
-import java.net.URL;
import junit.framework.TestCase;
+import org.hps.data.test.TestDataUtility;
import org.hps.job.JobManager;
-import org.lcsim.util.cache.FileCache;
import org.lcsim.util.test.TestUtil.TestOutputFile;
/**
@@ -27,11 +26,9 @@
public void testReadoutToLcio() throws Exception {
- new TestOutputFile(this.getClass().getSimpleName()).mkdir();
-
- FileCache cache = new FileCache();
- File inputFile = cache.getCachedFile(new URL("http://www.lcsim.org/test/hps-java/ReadoutToLcioTest.slcio"));
-
+ new TestOutputFile(this.getClass().getSimpleName()).mkdir();
+ File inputFile = new TestDataUtility().getTestData("ReadoutToLcioTest.slcio");
+
JobManager job = new JobManager();
job.addVariableDefinition("detector", "HPS-Proposal2014-v8-2pt2");
job.addVariableDefinition("run", "0");
Added: java/trunk/integration-tests/src/test/java/org/hps/test/it/ReconSteeringTest.java
=============================================================================
--- java/trunk/integration-tests/src/test/java/org/hps/test/it/ReconSteeringTest.java (added)
+++ java/trunk/integration-tests/src/test/java/org/hps/test/it/ReconSteeringTest.java Mon Nov 2 05:55:03 2015
@@ -0,0 +1,100 @@
+package org.hps.test.it;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+
+import junit.framework.TestCase;
+
+import org.hps.data.test.TestDataUtility;
+import org.hps.job.JobManager;
+import org.lcsim.util.cache.FileCache;
+import org.lcsim.util.test.TestUtil.TestOutputFile;
+
+/**
+ * Test that production MC recon steering files are not broken by running an LCSim job on them
+ * using an LCIO file.
+ *
+ * @author Jeremy McCormick, SLAC
+ */
+public class ReconSteeringTest extends TestCase {
+
+ /**
+ * List of steering files to run.
+ */
+ final static String[] STEERING_FILES = {
+ "EngineeringRun2014EcalRecon_Pass1.lcsim",
+ "EngineeringRun2014EcalRecon.lcsim",
+ "EngineeringRun2015EcalRecon.lcsim",
+ "EngineeringRun2015FullRecon.lcsim",
+ "EngineeringRun2015FullRecon_Pass2.lcsim",
+ "EngineeringRun2015HitRecon.lcsim",
+ "HPSTrackingDefaultsRecon.lcsim"
+ };
+
+ /**
+ * Test recon steering files.
+ * @throws Exception if any error occurs running the recon job
+ */
+ public void testSteeringFiles() {
+
+ File inputFile = new TestDataUtility().getTestData("tritrigv1-egsv3-triv2-g4v1_s2d6_HPS-EngRun2015-Nominal-v3_3.4.0_pairs1_1.slcio");
+
+ for (String steeringFile : STEERING_FILES) {
+
+ // Run the reconstruction steering file.
+ File outputFile = null;
+ try {
+ outputFile = new TestOutputFile(new File(steeringFile).getName().replace(".lcsim", ""));
+ runSteering("/org/hps/steering/recon/" + steeringFile, inputFile, outputFile);
+ } catch (Throwable e) {
+ System.err.println("Job with steering " + steeringFile + " failed!");
+ throw new RuntimeException("Recon job failed.", e);
+ }
+
+ Runtime runtime = Runtime.getRuntime();
+
+ int mb = 1024 * 1024;
+
+ System.out.println("total memory: " + runtime.totalMemory() / mb);
+ System.out.println("free memory: " + runtime.freeMemory() / mb);
+ System.out.println("max memory: " + runtime.maxMemory() / mb);
+ System.out.println("used memory: " + (runtime.totalMemory() - runtime.freeMemory()) / mb);
+
+ System.gc();
+
+ // Create DQM output for QA.
+ try {
+ runDQM(outputFile);
+ } catch (Throwable e) {
+ throw new RuntimeException("The DQM job failed.", e);
+ }
+ }
+ }
+
+ private void runSteering(String steeringFile, File inputFile, File outputFile) {
+ System.out.println("Testing steering file " + steeringFile + " ...");
+ JobManager job = new JobManager();
+ job.addVariableDefinition("outputFile", outputFile.getPath());
+ job.addVariableDefinition("detector", "HPS-EngRun2015-Nominal-v3");
+ job.addVariableDefinition("run", "5772");
+ job.addVariableDefinition("isMC", "true");
+ job.addInputFile(inputFile);
+ job.setup(steeringFile);
+ job.run();
+ System.out.println("Job with steering " + steeringFile + " successfully processed " + job.getLCSimLoop().getTotalCountableConsumed() + " events.");
+ }
+
+ private void runDQM(File outputFile) {
+ System.out.println("Running DQM on " + outputFile.getPath() + " ...");
+ JobManager job = new JobManager();
+ File inputFile = new File(outputFile.getPath() + ".slcio");
+ job.addInputFile(inputFile);
+ job.addVariableDefinition("outputFile", outputFile.getPath().replace(".slcio", ""));
+ job.setup("/org/hps/steering/production/DataQualityRecon.lcsim");
+ job.run();
+ System.out.println("DQM processed " + job.getLCSimLoop().getTotalCountableConsumed() + " events from " + outputFile + ".");
+ }
+}
+
+
Modified: java/trunk/integration-tests/src/test/java/org/hps/test/it/SimpleSvtReadoutTest.java
=============================================================================
--- java/trunk/integration-tests/src/test/java/org/hps/test/it/SimpleSvtReadoutTest.java (original)
+++ java/trunk/integration-tests/src/test/java/org/hps/test/it/SimpleSvtReadoutTest.java Mon Nov 2 05:55:03 2015
@@ -6,6 +6,7 @@
import junit.framework.TestCase;
+import org.hps.data.test.TestDataUtility;
import org.hps.job.JobManager;
import org.lcsim.event.EventHeader;
import org.lcsim.event.RawTrackerHit;
@@ -20,8 +21,7 @@
*
*/
public class SimpleSvtReadoutTest extends TestCase {
-
- static final String fileUrl = "http://www.lcsim.org/test/hps-java/ReadoutToLcioTest.slcio";
+
static final File outputDir = new File("./target/test-output/" + SimpleSvtReadoutTest.class.getSimpleName());
static final File outputFile = new File(outputDir + File.separator + SimpleSvtReadoutTest.class.getSimpleName());
@@ -29,12 +29,9 @@
static final String rawTrackerHitCollectionName = "SVTRawTrackerHits";
public void testSimpleSvtReadout() throws Exception {
-
- this.printDebug("Retrieving test file from " + fileUrl);
-
- FileCache cache = new FileCache();
- File inputFile = cache.getCachedFile(new URL(fileUrl));
-
+
+ File inputFile = new TestDataUtility().getTestData("ReadoutToLcioTest.slcio");
+
outputDir.mkdirs();
if(!outputDir.exists()){
this.printDebug("Failed to create directory " + outputDir.getPath());
|