diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2016-08-21 01:44:39 +0100 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2016-08-21 01:44:39 +0100 |
commit | c6be004510dc70936d8d9cf6c684daba4c0d2752 (patch) | |
tree | 53213d794892f0da59763c8d5e7aa4451581ad10 | |
parent | Split app assertions into their own tests (diff) | |
download | icespider-c6be004510dc70936d8d9cf6c684daba4c0d2752.tar.bz2 icespider-c6be004510dc70936d8d9cf6c684daba4c0d2752.tar.xz icespider-c6be004510dc70936d8d9cf6c684daba4c0d2752.zip |
Split compile/link test stages so ccache can work
-rw-r--r-- | icespider/unittests/testCompile.cpp | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/icespider/unittests/testCompile.cpp b/icespider/unittests/testCompile.cpp index 8adc19f..411f703 100644 --- a/icespider/unittests/testCompile.cpp +++ b/icespider/unittests/testCompile.cpp @@ -54,35 +54,57 @@ BOOST_AUTO_TEST_CASE( testLoadConfiguration ) BOOST_REQUIRE_EQUAL("test-api.ice", cfg->slices[0]); } -BOOST_AUTO_TEST_CASE( testCompile ) +BOOST_AUTO_TEST_CASE( testRouteCompile ) { + auto input = rootDir / "testRoutes.json"; + auto outputc = binDir / "testRoutes.cpp"; + Compile::RouteCompiler rc; rc.searchPath.push_back(rootDir); - auto input = rootDir / "testRoutes.json"; - auto output = binDir / "testRoutes.cpp"; - auto outputso = boost::filesystem::change_extension(output, ".so"); + rc.compile(input, outputc); +} + +BOOST_AUTO_TEST_CASE( testCompile ) +{ + auto outputc = binDir / "testRoutes.cpp"; + auto outputo = binDir / "testRoutes.o"; auto libGenDir = (rootDir / "bin" / modeDir / "slicer-yes"); - rc.compile(input, output); auto compileCommand = boost::algorithm::join<std::vector<std::string>>({ - "gcc", "-shared", "-std=c++1y", "-fPIC", " -fvisibility=hidden", "-O3", "-Wl,--warn-once,--gc-sections", + "gcc", "-c", "-std=c++1y", "-fPIC", "-fvisibility=hidden", "-O3", "-I", "/usr/include/adhocutil", "-I", "/usr/include/slicer", "-I", (rootDir.parent_path() / "core").string(), "-I", (rootDir.parent_path() / "common").string(), "-I", (rootDir.parent_path() / "common" / "bin" / modeDir / "allow-ice-yes").string(), "-I", libGenDir.string(), - "-o", outputso.string(), - output.string(), + "-o", outputo.string(), + outputc.string(), }, " "); BOOST_TEST_INFO("Compile command: " << compileCommand); int compileResult = system(compileCommand.c_str()); BOOST_REQUIRE_EQUAL(0, compileResult); } +BOOST_AUTO_TEST_CASE( testLink ) +{ + auto outputo = binDir / "testRoutes.o"; + auto outputso = binDir / "testRoutes.so"; + + auto linkCommand = boost::algorithm::join<std::vector<std::string>>({ + "gcc", "-shared", "-Wl,--warn-once,--gc-sections", + "-o", outputso.string(), + outputo.string(), + }, " "); + BOOST_TEST_INFO("Link command: " << linkCommand); + int linkResult = system(linkCommand.c_str()); + BOOST_REQUIRE_EQUAL(0, linkResult); +} + BOOST_AUTO_TEST_CASE( testLoad ) { auto outputso = binDir / "testRoutes.so"; + auto lib = dlopen(outputso.c_str(), RTLD_NOW); BOOST_TEST_INFO(dlerror()); BOOST_REQUIRE(lib); |