outside travis, run everything; also more verbose execution

This commit is contained in:
Alex Groce
2018-07-13 21:08:14 -07:00
parent eb150fc13c
commit ef3308b8ed
3 changed files with 73 additions and 59 deletions

View File

@@ -6,67 +6,69 @@ import logrun
class TestBasicFunctionality(TestCase):
def test_basic_functionality(self):
deepstate = os.getenv("DEEPSTATE_CMD")
if os.getenv("DEEPSTATE_CMD") is not None:
deepstates = [os.getenv("DEEPSTATE_CMD")]
if deepstate is None:
deepstate = "deepstate-angr" # default to angr in an environment without a defined command
deepstates = ["deepstate-angr", "deepstate-manticore"]
if os.getenv("TASK") is None or os.getenv("TASK") == "CRASH":
(r, output) = logrun.logrun([deepstate, "build/examples/Crash"],
"deepstate.out", 1800)
self.assertEqual(r, 0)
self.assertTrue("Passed: Crash_SegFault" in output)
foundCrashSave = False
for line in output.split("\n"):
if ("Saving input to" in line) and (".crash" in line):
foundCrashSave = True
self.assertTrue(foundCrashSave)
for deepstate in deepstates:
if os.getenv("TASK") is None or os.getenv("TASK") == "CRASH":
(r, output) = logrun.logrun([deepstate, "build/examples/Crash"],
"deepstate.out", 1800)
self.assertEqual(r, 0)
if os.getenv("TASK") is None or os.getenv("TASK") == "KLEE":
(r, output) = logrun.logrun([deepstate, "build/examples/Klee", "--klee"],
"deepstate.out", 1800)
self.assertEqual(r, 0)
self.assertTrue("Passed: Crash_SegFault" in output)
foundCrashSave = False
for line in output.split("\n"):
if ("Saving input to" in line) and (".crash" in line):
foundCrashSave = True
self.assertTrue(foundCrashSave)
self.assertTrue("zero" in output)
self.assertTrue("positive" in output)
self.assertTrue("negative" in output)
if os.getenv("TASK") is None or os.getenv("TASK") == "PRIMES":
(r, output) = logrun.logrun([deepstate, "build/examples/Primes"],
"deepstate.out", 1800)
self.assertEqual(r, 0)
if os.getenv("TASK") is None or os.getenv("TASK") == "KLEE":
(r, output) = logrun.logrun([deepstate, "build/examples/Klee", "--klee"],
"deepstate.out", 1800)
self.assertEqual(r, 0)
self.assertTrue("Failed: PrimePolynomial_OnlyGeneratesPrimes" in output)
self.assertTrue("Failed: PrimePolynomial_OnlyGeneratesPrimes_NoStreaming" in output)
self.assertTrue("zero" in output)
self.assertTrue("positive" in output)
self.assertTrue("negative" in output)
self.assertTrue("Passed: PrimePolynomial_OnlyGeneratesPrimes" in output)
self.assertTrue("Passed: PrimePolynomial_OnlyGeneratesPrimes_NoStreaming" in output)
if os.getenv("TASK") is None or os.getenv("TASK") == "PRIMES":
(r, output) = logrun.logrun([deepstate, "build/examples/Primes"],
"deepstate.out", 1800)
self.assertEqual(r, 0)
if os.getenv("TASK") is None or os.getenv("TASK") == "LISTS":
(r, output) = logrun.logrun([deepstate, "build/examples/Lists"],
"deepstate.out", 1800)
self.assertEqual(r, 0)
self.assertTrue("Failed: PrimePolynomial_OnlyGeneratesPrimes" in output)
self.assertTrue("Failed: PrimePolynomial_OnlyGeneratesPrimes_NoStreaming" in output)
self.assertTrue("Passed: Vector_DoubleReversal" in output)
self.assertFalse("Failed: Vector_DoubleReversal" in output)
self.assertTrue("Passed: PrimePolynomial_OnlyGeneratesPrimes" in output)
self.assertTrue("Passed: PrimePolynomial_OnlyGeneratesPrimes_NoStreaming" in output)
if os.getenv("TASK") is None or os.getenv("TASK") == "ONEOF":
(r, output) = logrun.logrun([deepstate, "build/examples/OneOf"],
"deepstate.out", 1800)
self.assertEqual(r, 0)
if os.getenv("TASK") is None or os.getenv("TASK") == "LISTS":
(r, output) = logrun.logrun([deepstate, "build/examples/Lists"],
"deepstate.out", 1800)
self.assertEqual(r, 0)
self.assertTrue("Failed: OneOfExample_ProduceSixtyOrHigher" in output)
self.assertTrue("Passed: OneOfExample_ProduceSixtyOrHigher" in output)
self.assertTrue("Passed: Vector_DoubleReversal" in output)
self.assertFalse("Failed: Vector_DoubleReversal" in output)
if os.getenv("TASK") is None or os.getenv("TASK") == "ARITHMETIC":
(r, output) = logrun.logrun([deepstate, "build/examples/IntegerArithmetic", "--num_workers", "4"],
"deepstate.out", 1800)
self.assertEqual(r, 0)
if os.getenv("TASK") is None or os.getenv("TASK") == "ONEOF":
(r, output) = logrun.logrun([deepstate, "build/examples/OneOf"],
"deepstate.out", 1800)
self.assertEqual(r, 0)
self.assertTrue("Failed: Arithmetic_InvertibleMultiplication_CanFail" in output)
self.assertTrue("Passed: Arithmetic_AdditionIsCommutative" in output)
self.assertFalse("Failed: Arithmetic_AdditionIsCommutative" in output)
self.assertTrue("Passed: Arithmetic_AdditionIsAssociative" in output)
self.assertFalse("Failed: Arithmetic_AdditionIsAssociative" in output)
self.assertTrue("Passed: Arithmetic_InvertibleMultiplication_CanFail" in output)
self.assertTrue("Failed: OneOfExample_ProduceSixtyOrHigher" in output)
self.assertTrue("Passed: OneOfExample_ProduceSixtyOrHigher" in output)
if os.getenv("TASK") is None or os.getenv("TASK") == "ARITHMETIC":
(r, output) = logrun.logrun([deepstate, "build/examples/IntegerArithmetic", "--num_workers", "4"],
"deepstate.out", 1800)
self.assertEqual(r, 0)
self.assertTrue("Failed: Arithmetic_InvertibleMultiplication_CanFail" in output)
self.assertTrue("Passed: Arithmetic_AdditionIsCommutative" in output)
self.assertFalse("Failed: Arithmetic_AdditionIsCommutative" in output)
self.assertTrue("Passed: Arithmetic_AdditionIsAssociative" in output)
self.assertFalse("Failed: Arithmetic_AdditionIsAssociative" in output)
self.assertTrue("Passed: Arithmetic_InvertibleMultiplication_CanFail" in output)