summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2016-09-24 12:47:12 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2016-09-24 14:03:59 +0100
commit8d68181e730ad4987d0478979eed78acbde3cb0a (patch)
tree774bcd44c3f4c8fe430aa1b695cfe3d74a3242c5
parentInherit a common model storage base (diff)
downloadslicer-8d68181e730ad4987d0478979eed78acbde3cb0a.tar.bz2
slicer-8d68181e730ad4987d0478979eed78acbde3cb0a.tar.xz
slicer-8d68181e730ad4987d0478979eed78acbde3cb0a.zip
Build test case libs with bjam, not a messy set of tests
-rw-r--r--slicer/db/Jamfile.jam6
-rw-r--r--slicer/json/Jamfile.jam2
-rw-r--r--slicer/test/Jamfile.jam51
-rw-r--r--slicer/test/helpers.cpp36
-rw-r--r--slicer/test/helpers.h12
-rw-r--r--slicer/test/preprocessor.cpp46
-rw-r--r--slicer/tool/Jamfile.jam1
-rw-r--r--slicer/xml/Jamfile.jam2
8 files changed, 41 insertions, 115 deletions
diff --git a/slicer/db/Jamfile.jam b/slicer/db/Jamfile.jam
index 9b51b82..c6915ef 100644
--- a/slicer/db/Jamfile.jam
+++ b/slicer/db/Jamfile.jam
@@ -40,7 +40,7 @@ run testSelect.cpp
<library>boost_system
<library>boost_filesystem
<library>boost_utf
- <library>../test//slicer-test
+ <library>../test//types
<library>../test//common
<library>../slicer//slicer
<implicit-dependency>../slicer//slicer
@@ -60,7 +60,7 @@ run testInsert.cpp
<library>boost_system
<library>boost_filesystem
<library>boost_utf
- <library>../test//slicer-test
+ <library>../test//types
<library>../test//common
<library>../slicer//slicer
<implicit-dependency>../slicer//slicer
@@ -81,7 +81,7 @@ run testUpdate.cpp
<library>boost_system
<library>boost_filesystem
<library>boost_utf
- <library>../test//slicer-test
+ <library>../test//types
<library>../test//common
<library>../slicer//slicer
<implicit-dependency>../slicer//slicer
diff --git a/slicer/json/Jamfile.jam b/slicer/json/Jamfile.jam
index 34ca153..05b5228 100644
--- a/slicer/json/Jamfile.jam
+++ b/slicer/json/Jamfile.jam
@@ -31,7 +31,7 @@ run testSpecifics.cpp
<define>BOOST_TEST_DYN_LINK
<library>slicer-json
<library>boost_utf
- <library>../test//slicer-test
+ <library>../test//types
<library>../test//common
<library>../slicer//slicer
<include>..
diff --git a/slicer/test/Jamfile.jam b/slicer/test/Jamfile.jam
index 253ab2b..7bf0b05 100644
--- a/slicer/test/Jamfile.jam
+++ b/slicer/test/Jamfile.jam
@@ -1,4 +1,8 @@
import testing ;
+import generators ;
+import type ;
+import feature ;
+import toolset ;
lib dl ;
lib pthread ;
@@ -6,44 +10,68 @@ lib Ice ;
lib IceUtil ;
lib boost_system ;
lib boost_filesystem ;
+lib boost_date_time ;
lib boost_utf : : <name>boost_unit_test_framework ;
-lib slicer-test : : <name>slicertypes <search>bin/slicer ;
lib adhocutil : : : : <include>/usr/include/adhocutil ;
+generators.register-standard $(__name__).slicer : SLICE : CPP : <slicer>pure ;
+generators.override $(__name__).slicer : slice.slicer.pure ;
+feature.feature slicerbin : : free dependency ;
+toolset.flags slicer SLICERBIN <slicerbin> ;
+toolset.flags slicer INCLUDES <include> ;
+toolset.flags slicer ALLOWICE <allow-ice>yes : --ice ;
+
+actions slicer bind SLICERBIN
+{
+ truncate -c -s 0 $(1[1])
+ "$(SLICERBIN)" -I"$(INCLUDES)" $(2) $(1[1]) $(ALLOWICE[1]) --headerPrefix="\"\""
+}
+
+cpp stypes :
+ types.ice
+ :
+ <slicer>pure
+ <slicerbin>../tool//slicer
+ <dependency>../tool//slicer
+ <include>included
+ ;
+
lib types :
types.ice
+ stypes
+ conversions.cpp
:
<include>.
<library>pthread
<library>Ice
<library>IceUtil
<library>adhocutil
+ <library>boost_date_time
<library>included//included
+ <library>../slicer//slicer
<implicit-dependency>included//included
+ <implicit-dependency>../slicer//slicer
: :
<include>.
<library>pthread
<library>Ice
<library>IceUtil
<library>included//included
+ <library>../slicer//slicer
;
path-constant me : . ;
lib common :
helpers.cpp
- conversions.cpp
fileStructure.cpp
:
- <library>dl
- <library>types
+ <library>adhocutil
<library>boost_system
<library>boost_filesystem
<library>boost_utf
- <implicit-dependency>types
<define>ROOT=\"$(me)\"
: :
- <library>types
<library>boost_filesystem
<library>boost_system
<define>BOOST_TEST_DYN_LINK
@@ -53,14 +81,10 @@ lib common :
run preprocessor.cpp
: : :
- <linkflags>-rdynamic
- <library>dl
<library>common
<library>adhocutil
<include>..
- <library>../slicer//slicer
<library>../tool//slicer-compiler
- <dependency>../tool//slicer
:
preprocess
;
@@ -70,19 +94,14 @@ run compilation.cpp
<include>..
<library>../slicer//slicer
<library>types
- <dependency>preprocess
- <library>slicer-test
<library>common
- <include>..
- <library>../slicer//slicer
:
compilation
;
run serializers.cpp
: : :
- <dependency>preprocess
- <library>slicer-test
+ <library>types
<library>common
<library>../slicer//slicer
<implicit-dependency>../slicer//slicer
diff --git a/slicer/test/helpers.cpp b/slicer/test/helpers.cpp
index 73f3aa7..956b626 100644
--- a/slicer/test/helpers.cpp
+++ b/slicer/test/helpers.cpp
@@ -1,22 +1,8 @@
#include "helpers.h"
-#include <stdexcept>
-#include <stdlib.h>
-#include <dlfcn.h>
#include <fstream>
#include <boost/test/test_tools.hpp>
void
-system(const std::string & cmd)
-{
- if (system(cmd.c_str())) {
- // LCOV_EXCL_START
- fprintf(stderr, "Failed to execute:\n\t%s\n", cmd.c_str());
- throw std::runtime_error(cmd);
- // LCOV_EXCL_STOP
- }
-}
-
-void
diff(const boost::filesystem::path & left, const boost::filesystem::path & right)
{
std::ifstream fl(left.string());
@@ -29,25 +15,3 @@ diff(const boost::filesystem::path & left, const boost::filesystem::path & right
BOOST_REQUIRE_EQUAL(l, r);
}
-void *
-loadlib(const boost::filesystem::path & so)
-{
- auto handle = dlopen(so.string().c_str(), RTLD_NOW | RTLD_GLOBAL);
- if (!handle) {
- // LCOV_EXCL_START
- throw std::runtime_error(dlerror());
- // LCOV_EXCL_STOP
- }
- return handle;
-}
-
-void
-closelib(void * handle)
-{
- if (dlclose(handle)) {
- // LCOV_EXCL_START
- throw std::runtime_error(dlerror());
- // LCOV_EXCL_STOP
- }
-}
-
diff --git a/slicer/test/helpers.h b/slicer/test/helpers.h
index aba4974..95dbd4d 100644
--- a/slicer/test/helpers.h
+++ b/slicer/test/helpers.h
@@ -8,18 +8,6 @@
// These are just thin wrappers that throw exceptions
DLL_PUBLIC
void
-system(const std::string &);
-
-DLL_PUBLIC
-void *
-loadlib(const boost::filesystem::path &);
-
-DLL_PUBLIC
-void
-closelib(void *);
-
-DLL_PUBLIC
-void
diff(const boost::filesystem::path & left, const boost::filesystem::path & right);
#endif
diff --git a/slicer/test/preprocessor.cpp b/slicer/test/preprocessor.cpp
index b715d50..fadbac9 100644
--- a/slicer/test/preprocessor.cpp
+++ b/slicer/test/preprocessor.cpp
@@ -2,12 +2,8 @@
#include <boost/test/unit_test.hpp>
#include <tool/parser.h>
-#include <boost/filesystem/convenience.hpp>
-#include <boost/filesystem/operations.hpp>
#include <boost/format.hpp>
-#include <boost/function.hpp>
#include <buffer.h>
-#include <types.h>
#include "helpers.h"
#include "fileStructure.h"
@@ -63,47 +59,5 @@ BOOST_AUTO_TEST_CASE( slicer_test_counts_interfacesOnly )
BOOST_REQUIRE_EQUAL(0, count);
}
-BOOST_AUTO_TEST_CASE( slicer_test_ice )
-{
- const fs::path cpp = fs::change_extension(tmp / base, ".cpp");
- BOOST_TEST_CHECKPOINT("cpp: " << cpp);
- fs::remove(cpp);
- const std::string doslice = stringbf(
- "%s -I%s --headerPrefix='\"\"' %s %s",
- root.parent_path() / "tool" / bjamout / "slicer",
- included,
- slice, cpp);
- BOOST_TEST_CHECKPOINT("slicer: " << doslice);
- system(doslice);
-
- const fs::path obj = fs::change_extension(tmp / base, ".o");
- const std::string compile = stringbf(
- "g++ -Os -fPIC -c -std=c++1y -fvisibility=hidden -I%s -I tmp -I /usr/include/adhocutil -I /usr/include/Ice -I /usr/include/IceUtil -I %s -I %s -I %s -I %s -I %s %s -o %s",
- root.parent_path() / "slicer",
- root / bjamout,
- root,
- included / bjamout,
- root.parent_path(),
- root.parent_path() / "slicer" / bjamout,
- cpp, obj);
- BOOST_TEST_CHECKPOINT("compile: " << compile);
- system(compile);
-
- const fs::path so = fs::change_extension(tmp / ("libslicer" + slice.filename().string()), ".so");
- const std::string link = stringbf(
- "g++ -shared -Wl,--strip-all,--gc-sections -lboost_date_time -lIce -lIceUtil %s/lib%s.so %s/lib%s.so %s -o %s",
- root / bjamout, base,
- included / bjamout, included.leaf(),
- obj, so);
- BOOST_TEST_CHECKPOINT("link: " << link);
- system(link);
-
- BOOST_TEST_CHECKPOINT("load: " << so);
- auto handle = loadlib(so);
-
- BOOST_TEST_CHECKPOINT("unload: " << handle);
- closelib(handle);
-}
-
BOOST_AUTO_TEST_SUITE_END();
diff --git a/slicer/tool/Jamfile.jam b/slicer/tool/Jamfile.jam
index c5f94a3..cc0ace7 100644
--- a/slicer/tool/Jamfile.jam
+++ b/slicer/tool/Jamfile.jam
@@ -22,6 +22,7 @@ lib slicer-compiler :
<include>..
: :
<include>..
+ <library>../slicer//slicer
;
exe slicer :
diff --git a/slicer/xml/Jamfile.jam b/slicer/xml/Jamfile.jam
index 0d170da..d16fc8a 100644
--- a/slicer/xml/Jamfile.jam
+++ b/slicer/xml/Jamfile.jam
@@ -33,7 +33,7 @@ run testSpecifics.cpp
<library>slicer-xml
<implicit-dependency>slicer-xml
<library>boost_utf
- <library>../test//slicer-test
+ <library>../test//types
<library>../test//common
<library>../slicer//slicer
<include>..