Esempio n. 1
0
 def testCmdErr(self):
     "handling of pipes when process has error"
     er = ExRun(verbFlags=set())
     ifp = er.getFile(self.getInputFile("numbers.txt"))
     ofp1 = er.getFile(self.getOutputFile(".txt.gz"))
     ofp2 = er.getFile(self.getOutputFile(".txt"))
     r1 = er.addCmd(
         (["sort", "-r", FileIn(ifp)], ["tee", FileOut(ofp1)]),
         stdout="/dev/null")
     r2 = er.addCmd(
         (["zcat", FileIn(ofp1, autoDecompress=False)], ["false"]),
         stdout=FileOut(ofp2))
     ex = None
     try:
         er.run()
     except ExRunException, ex:
         self.failUnlessEqual("Experiment failed: 1 error(s) encountered",
                              str(ex))
         ex1 = er.errors[0]
         self.failUnless(isinstance(ex1, ExRunException))
         ex2 = ex1.cause
         self.failUnless(isinstance(ex2, ExRunException))
         ex3 = ex2.cause
         self.failUnless(isinstance(ex3, ProcException))
         exre = "process exited 1: false"
         self.failUnless(str(ex3), exre)
Esempio n. 2
0
 def __mkDependOnNoDepend(priFile, secFile, secContents):
     ex = ExRun(verbFlags=verbFlags)
     priFp = ex.getFile(priFile)
     secFp = ex.getFile(secFile)
     ex.addCmd(["touch", FileOut(priFp)])
     ex.addCmd(["echo", secContents], requires=priFp, stdout=secFp)
     ex.run()
     return ex
Esempio n. 3
0
 def __mkDependOnNoDepend(self, priFile, secFile, secContents):
     ex = ExRun(verbFlags=verbFlags)
     priFp = ex.getFile(priFile)
     secFp = ex.getFile(secFile)
     ex.addCmd(["touch", FileOut(priFp)])
     ex.addCmd(["echo", secContents], requires=priFp, stdout=secFp)
     ex.run()
     return ex
Esempio n. 4
0
 def testCmdSigPipe(self):
     "test command recieving SIGPIPE with no error"
     er = ExRun(verbFlags=verbFlags)
     ofp = er.getFile(self.getOutputFile(".txt"))
     er.addCmd((["yes"], ["true"]), stdout=FileOut(ofp))
     ex = None
     try:
         er.run()
     except Exception, ex:
         prExceptions(er, ex)
         raise
Esempio n. 5
0
 def testCmdSigPipe(self):
     "test command recieving SIGPIPE with no error"
     er = ExRun(verbFlags=verbFlags)
     ofp = er.getFile(self.getOutputFile(".txt"))
     er.addCmd((["yes"], ["true"]), stdout=FileOut(ofp))
     ex = None
     try:
         er.run()
     except Exception, ex:
         prExceptions(er, ex)
         raise
Esempio n. 6
0
 def testArgs(self):
     er = ExRun(verbFlags=verbFlags)
     ifp = er.getFile(self.getInputFile("numbers.txt"))
     ofp1 = er.getFile(self.getOutputFile(".txt.gz"))
     ofp2 = er.getFile(self.getOutputFile(".txt"))
     er.addCmd((["sort", "-r", FileIn(ifp)], ["tee", FileOut(ofp1)]), stdout="/dev/null")
     er.addCmd(["sed", "-e", "s/^/= /", FileIn(ofp1)], stdout=FileOut(ofp2))
     try:
         er.run()
     except Exception, ex:
         prExceptions(er, ex)
         raise
Esempio n. 7
0
 def testStdio(self):
     er = ExRun(verbFlags=verbFlags)
     ifp = er.getFile(self.getInputFile("numbers.txt"))
     ofp1 = er.getFile(self.getOutputFile(".txt.gz"))
     ofp2 = er.getFile(self.getOutputFile(".txt"))
     er.addCmd(["sort", "-r"], stdin=ifp, stdout=ofp1)
     er.addCmd((["zcat", FileIn(ofp1, autoDecompress=False)], ["sed", "-e", "s/^/= /"]), stdout=ofp2)
     try:
         er.run()
     except Exception, ex:
         prExceptions(er, ex)
         raise
Esempio n. 8
0
 def testArgs(self):
     er = ExRun(verbFlags=verbFlags)
     ifp = er.getFile(self.getInputFile("numbers.txt"))
     ofp1 = er.getFile(self.getOutputFile(".txt.gz"))
     ofp2 = er.getFile(self.getOutputFile(".txt"))
     er.addCmd((["sort", "-r", FileIn(ifp)], ["tee", FileOut(ofp1)]),
               stdout="/dev/null")
     er.addCmd(["sed", "-e", "s/^/= /", FileIn(ofp1)], stdout=FileOut(ofp2))
     try:
         er.run()
     except Exception, ex:
         prExceptions(er, ex)
         raise
Esempio n. 9
0
 def testStdio(self):
     er = ExRun(verbFlags=verbFlags)
     ifp = er.getFile(self.getInputFile("numbers.txt"))
     ofp1 = er.getFile(self.getOutputFile(".txt.gz"))
     ofp2 = er.getFile(self.getOutputFile(".txt"))
     er.addCmd(["sort", "-r"], stdin=ifp, stdout=ofp1)
     er.addCmd((["zcat", FileIn(ofp1, autoDecompress=False)
                 ], ["sed", "-e", "s/^/= /"]),
               stdout=ofp2)
     try:
         er.run()
     except Exception, ex:
         prExceptions(er, ex)
         raise
Esempio n. 10
0
 def testCmdErr(self):
     "handling of pipes when process has error"
     er = ExRun(verbFlags=set())
     ifp = er.getFile(self.getInputFile("numbers.txt"))
     ofp1 = er.getFile(self.getOutputFile(".txt.gz"))
     ofp2 = er.getFile(self.getOutputFile(".txt"))
     r1 = er.addCmd((["sort", "-r", FileIn(ifp)], ["tee", FileOut(ofp1)]), stdout="/dev/null")
     r2 = er.addCmd((["zcat", FileIn(ofp1, autoDecompress=False)], ["false"]), stdout=FileOut(ofp2))
     ex = None
     try:
         er.run()
     except ExRunException, ex:
         self.failUnlessEqual("Experiment failed: 1 error(s) encountered", str(ex))
         ex1 = er.errors[0]
         self.failUnless(isinstance(ex1, ExRunException))
         ex2 = ex1.cause
         self.failUnless(isinstance(ex2, ExRunException))
         ex3 = ex2.cause
         self.failUnless(isinstance(ex3, ProcException))
         exre = "process exited 1: false"
         self.failUnless(str(ex3),exre)
Esempio n. 11
0
 def testCmdErr(self):
     "handling of pipes when process has error"
     er = ExRun(verbFlags=set())
     ifp = er.getFile(self.getInputFile("numbers.txt"))
     ofp1 = er.getFile(self.getOutputFile(".txt.gz"))
     ofp2 = er.getFile(self.getOutputFile(".txt"))
     r1 = er.addCmd((["sort", "-r", FileIn(ifp)], ["tee", FileOut(ofp1)]), stdout="/dev/null")
     r2 = er.addCmd((["zcat", FileIn(ofp1, autoDecompress=False)], ["false"]), stdout=FileOut(ofp2))
     with self.assertRaises(ExRunException) as cm:
         er.run()
     self.assertEqual("Experiment failed: 1 error(s) encountered", str(cm.exception))
     ex1 = er.errors[0]
     self.assertTrue(isinstance(ex1, ExRunException))
     ex2 = ex1.cause
     self.assertTrue(isinstance(ex2, ExRunException))
     ex3 = ex2.cause
     self.assertTrue(isinstance(ex3, ProcException))
     exre = "process exited 1: false"
     self.assertTrue(str(ex3),exre)
     self.checkGraphStates(er,
                           ((ofp1, ProdState.current),
                            (ofp2, ProdState.failed),
                            (r1,   RuleState.ok),
                            (r2,   RuleState.failed)))