klee/klee — pull request #148 by delcypher (2014-09-13 05:07:51+00:00)
Title: Add TravisCI testing. Lots of things are broken right now.

This adds support for running continuous integration tests using using TravisCI. For this to work one of the owners of this repository will need to login to TravisCI and enable it for this repository once this is committed.

Here's what it looks like running on my branch.

https://travis-ci.org/delcypher/klee/builds/35181417

We can have quite a few configurations but for now I have

- LLVM2.9, 3.4 or 3.5
- Building with uClibc or without
- Using upstream STP only
- Building with clang (it's a one line change to also test building with gcc)

Unfortunately every single build is broken in some way. A few things I noticed

- Some tests use ``--libc=uclibc`` when we built without support for it. These tests need to be marked as unsupported when we build without uClibc
- It looks like the newly enabled Concrete tests don't work when building out of source
- A test is getting stuck with the LLVM3.4 UCLIBC build. Not sure which one though because lit only outputs text once a test is complete
- Running the unit tests is broken. We don't get that far yet because the lit tests are running first right now. This is an issue with the build system. We shouldn't be relying of LLVM's build system! We should have our own independent build system (my preference would be CMake).
- Building against LLVM3.5 obviously fails because my patches for building against it aren't in master yet.
- For LLVM2.9 we're missing the ``FileCheck`` and ``not`` programs for running tests. This is because these tools are not shipped the LLVM2.9 package.
- The code can't compile with Release+Asserts right now (so I have asserts disabled) because our use of the ``DEBUG_WITH_TYPE()`` and ``DEBUG()`` macros from the LLVM Support library.