From 38984fd59fa7ccca4ace5689bd96522b80e407dc Mon Sep 17 00:00:00 2001 From: Alex Groce Date: Fri, 13 Jul 2018 11:41:48 -0700 Subject: [PATCH] split into three tasks, check OneOf, add fast prime test, try multiple workers --- .travis.yml | 8 +++++-- tests/test_basic_functionality.py | 35 ++++++++++++++++++++++++------- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index 97a0d0f..45b70c7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,8 +17,12 @@ install: - python setup.py install - cd .. env: -- TASK=ANGR_BASIC DEEPSTATE_CMD=deepstate-angr -- TASK=MANTICORE_BASIC DEEPSTATE_CMD=deepstate-manticore +- TASK=PRIMES DEEPSTATE_CMD=deepstate-angr +- TASK=PRIMES DEEPSTATE_CMD=deepstate-manticore +- TASK=ONEOF DEEPSTATE_CMD=deepstate-angr +- TASK=ONEOF DEEPSTATE_CMD=deepstate-manticore +- TASK=ARITHMETIC DEEPSTATE_CMD=deepstate-angr +- TASK=ARITHMETIC DEEPSTATE_CMD=deepstate-manticore script: - pyflakes bin/deepstate/*.py - pyflakes tests/*.py diff --git a/tests/test_basic_functionality.py b/tests/test_basic_functionality.py index 2d8be55..42966fd 100644 --- a/tests/test_basic_functionality.py +++ b/tests/test_basic_functionality.py @@ -10,11 +10,32 @@ class TestBasicFunctionality(TestCase): if deepstate is None: deepstate = "deepstate-angr" # default to angr in an environment without a defined command - (r, output) = logrun.logrun([deepstate, "build/examples/IntegerArithmetic"], - "deepstate.out", 1800) - self.assertEqual(r, 0) + 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) - self.assertTrue("Passed: Arithmetic_AdditionIsCommutative" in output) - self.assertTrue("Passed: Arithmetic_AdditionIsAssociative" in output) - self.assertTrue("Passed: Arithmetic_InvertibleMultiplication_CanFail" in output) - self.assertTrue("Failed: Arithmetic_InvertibleMultiplication_CanFail" in output) + self.assertTrue("Failed: PrimePolynomial_OnlyGeneratesPrimes" in output) + self.assertTrue("Failed: PrimePolynomial_OnlyGeneratesPrimes_NoStreaming" 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) + + 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.assertTrue("Failed: Arithmetic_InvertibleMultiplication_CanFail" in output) + self.assertTrue("Passed: Arithmetic_AdditionIsCommutative" in output) + self.assertTrue("Passed: Arithmetic_AdditionIsAssociative" in output) + self.assertTrue("Passed: Arithmetic_InvertibleMultiplication_CanFail" in output)