From 9693eae0d4fddb148bd5fd663a7a2e802d3e4666 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 28 Jul 2017 14:32:38 +0200 Subject: Use utility library to arrange unit testing --- build/root.build | 6 +++--- build2/buildfile | 18 +++++++++--------- build2/dummy.cxx | 8 -------- unit-tests/cc/lexer/buildfile | 14 +------------- unit-tests/cc/parser/buildfile | 14 +------------- unit-tests/function/buildfile | 13 +------------ unit-tests/lexer/buildfile | 13 +------------ unit-tests/scheduler/buildfile | 12 +----------- unit-tests/test/script/lexer/buildfile | 14 +------------- unit-tests/test/script/parser/buildfile | 15 +-------------- unit-tests/test/script/regex/buildfile | 9 +-------- 11 files changed, 20 insertions(+), 116 deletions(-) delete mode 100644 build2/dummy.cxx diff --git a/build/root.build b/build/root.build index 85f69a1..0d887ec 100644 --- a/build/root.build +++ b/build/root.build @@ -11,8 +11,6 @@ ixx{*}: extension = ixx txx{*}: extension = txx cxx{*}: extension = cxx -cxx.poptions =+ "-I$out_root" "-I$src_root" - # Load the cli module but only if it's available. This way a distribution # that includes pre-generated files can be built without installing cli. # This is also the reason why we need to explicitly spell out individual @@ -21,9 +19,11 @@ cxx.poptions =+ "-I$out_root" "-I$src_root" # using? cli -# All exe{} in unit-tests/ are, well, tests. +# All exe{} in unit-tests/ are, well, tests. Also don't link whole archives +# by default there. # unit-tests/exe{*}: test = true +unit-tests/libu{*}: bin.whole = false # Specify the test target for cross-testing. # diff --git a/build2/buildfile b/build2/buildfile index fc0632c..7514984 100644 --- a/build2/buildfile +++ b/build2/buildfile @@ -4,19 +4,19 @@ import libs = libbutl%lib{butl} -exe{b}: {hxx ixx txx cxx}{** -b-options -version -dummy} \ - {hxx ixx cxx}{b-options} {hxx}{version} \ - liba{b} $libs +exe{b}: cxx{b} libu{b} + +libu{b}: {hxx ixx txx cxx}{** -b -b-options -version} \ + {hxx ixx cxx}{b-options} {hxx}{version} \ + $libs + +cxx.poptions =+ "-I$out_root" "-I$src_root" +libu{b}: cxx.export.poptions = "-I$out_root" "-I$src_root" +libu{b}: cxx.export.libs = $libs hxx{version}: in{version} $src_root/file{manifest} hxx{version}: dist = true -# Fake utility library (without it code generation does not work). -# -liba{b}: {cxx}{dummy} -liba{b}: cxx.export.poptions = "-I$out_root" "-I$src_root" -liba{b}: install = false - # Pass our compiler target to be used as build2 host. # obj{b context}: cxx.poptions += -DBUILD2_HOST_TRIPLET=\"$cxx.target\" diff --git a/build2/dummy.cxx b/build2/dummy.cxx deleted file mode 100644 index bdea9a9..0000000 --- a/build2/dummy.cxx +++ /dev/null @@ -1,8 +0,0 @@ -// file : build2/dummy.cxx -*- C++ -*- -// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd -// license : MIT; see accompanying LICENSE file - -namespace build2 -{ - void dummy () {} -} diff --git a/unit-tests/cc/lexer/buildfile b/unit-tests/cc/lexer/buildfile index 17a91d0..8c20552 100644 --- a/unit-tests/cc/lexer/buildfile +++ b/unit-tests/cc/lexer/buildfile @@ -2,17 +2,5 @@ # copyright : Copyright (c) 2014-2017 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file -#@@ Temporary until we get utility library support. -# -import libs = libbutl%lib{butl} -src = cc/lexer token lexer diagnostics utility variable name b-options \ -types-parsers context scope parser target operation rule prerequisite file \ -module function functions-builtin functions-filesystem functions-path \ -functions-process-path functions-regex functions-string \ -functions-target-triplet algorithm search dump filesystem scheduler \ -config/{utility init operation module} spec - -exe{driver}: {hxx cxx}{*} ../../../build2/cxx{$src} ../../../build2/liba{b} \ - $libs test{*} - include ../../../build2/ +exe{driver}: {hxx cxx}{*} ../../../build2/libu{b} test{*} diff --git a/unit-tests/cc/parser/buildfile b/unit-tests/cc/parser/buildfile index d919e2f..0c04bb1 100644 --- a/unit-tests/cc/parser/buildfile +++ b/unit-tests/cc/parser/buildfile @@ -2,17 +2,5 @@ # copyright : Copyright (c) 2014-2017 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file -#@@ Temporary until we get utility library support. -# -import libs = libbutl%lib{butl} -src = cc/{lexer parser} token lexer diagnostics utility variable name \ -b-options types-parsers context scope parser target operation rule \ -prerequisite file module function functions-builtin functions-filesystem \ -functions-path functions-process-path functions-regex functions-string \ -functions-target-triplet algorithm search dump filesystem scheduler \ -config/{utility init operation module} spec - -exe{driver}: {hxx cxx}{*} ../../../build2/cxx{$src} ../../../build2/liba{b} \ - $libs test{*} - include ../../../build2/ +exe{driver}: {hxx cxx}{*} ../../../build2/libu{b} test{*} diff --git a/unit-tests/function/buildfile b/unit-tests/function/buildfile index bae96f5..38f541a 100644 --- a/unit-tests/function/buildfile +++ b/unit-tests/function/buildfile @@ -2,16 +2,5 @@ # copyright : Copyright (c) 2014-2017 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file -#@@ Temporary until we get utility library support. -# -import libs = libbutl%lib{butl} -src = token lexer diagnostics utility variable name b-options types-parsers \ -context scope parser target operation rule prerequisite file module function \ -functions-builtin functions-filesystem functions-path functions-process-path \ -functions-regex functions-string functions-target-triplet algorithm search \ -dump filesystem scheduler config/{utility init operation module} spec - -exe{driver}: {hxx cxx}{*} ../../build2/cxx{$src} ../../build2/liba{b} $libs \ - test{*} - include ../../build2/ +exe{driver}: {hxx cxx}{*} ../../build2/libu{b} test{*} diff --git a/unit-tests/lexer/buildfile b/unit-tests/lexer/buildfile index 09dbbf1..6df2a72 100644 --- a/unit-tests/lexer/buildfile +++ b/unit-tests/lexer/buildfile @@ -2,16 +2,5 @@ # copyright : Copyright (c) 2014-2017 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file -#@@ Temporary until we get utility library support. -# -import libs = libbutl%lib{butl} -src = token lexer diagnostics utility variable name b-options types-parsers \ -context scope parser target operation rule prerequisite file module function \ -functions-builtin functions-filesystem functions-path functions-process-path \ -functions-regex functions-string functions-target-triplet algorithm search \ -dump filesystem scheduler config/{utility init operation module} spec - -exe{driver}: {hxx cxx}{*} ../../build2/cxx{$src} ../../build2/liba{b} $libs \ - test{*} - include ../../build2/ +exe{driver}: {hxx cxx}{*} ../../build2/libu{b} test{*} diff --git a/unit-tests/scheduler/buildfile b/unit-tests/scheduler/buildfile index 842c582..81c077b 100644 --- a/unit-tests/scheduler/buildfile +++ b/unit-tests/scheduler/buildfile @@ -2,15 +2,5 @@ # copyright : Copyright (c) 2014-2017 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file -#@@ Temporary until we get utility library support. -# -import libs = libbutl%lib{butl} -src = token lexer diagnostics utility variable name b-options types-parsers \ -context scope parser target operation rule prerequisite file module function \ -functions-builtin functions-filesystem functions-path functions-process-path \ -functions-regex functions-string functions-target-triplet algorithm search \ -dump filesystem scheduler config/{utility init operation module} spec - -exe{driver}: {hxx cxx}{*} ../../build2/cxx{$src} ../../build2/liba{b} $libs - include ../../build2/ +exe{driver}: {hxx cxx}{*} ../../build2/libu{b} diff --git a/unit-tests/test/script/lexer/buildfile b/unit-tests/test/script/lexer/buildfile index 365b092..8cb284c 100644 --- a/unit-tests/test/script/lexer/buildfile +++ b/unit-tests/test/script/lexer/buildfile @@ -2,17 +2,5 @@ # copyright : Copyright (c) 2014-2017 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file -#@@ Temporary until we get utility library support. -# -import libs = libbutl%lib{butl} -src = token lexer diagnostics utility variable name b-options types-parsers \ -context scope parser target operation rule prerequisite file module function \ -functions-builtin functions-filesystem functions-path functions-process-path \ -functions-regex functions-string functions-target-triplet algorithm search \ -dump filesystem scheduler config/{utility init operation module} \ -test/script/{token lexer} spec - -exe{driver}: {hxx cxx}{*} ../../../../build2/cxx{$src} \ - ../../../../build2/liba{b} $libs test{*} - include ../../../../build2/ +exe{driver}: {hxx cxx}{*} ../../../../build2/libu{b} test{*} diff --git a/unit-tests/test/script/parser/buildfile b/unit-tests/test/script/parser/buildfile index 3f62835..ea76bcd 100644 --- a/unit-tests/test/script/parser/buildfile +++ b/unit-tests/test/script/parser/buildfile @@ -2,18 +2,5 @@ # copyright : Copyright (c) 2014-2017 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file -#@@ Temporary until we get utility library support. -# -import libs = libbutl%lib{butl} -src = token lexer parser diagnostics utility variable name context target \ -scope prerequisite file module operation rule b-options algorithm search \ -filesystem function functions-builtin functions-filesystem functions-path \ -functions-process-path functions-regex functions-string \ -functions-target-triplet config/{utility init operation module} dump \ -types-parsers test/{target script/{token lexer parser regex script}} \ -scheduler spec - -exe{driver}: {hxx cxx}{*} ../../../../build2/cxx{$src} \ - ../../../../build2/liba{b} $libs test{*} - include ../../../../build2/ +exe{driver}: {hxx cxx}{*} ../../../../build2/libu{b} test{*} diff --git a/unit-tests/test/script/regex/buildfile b/unit-tests/test/script/regex/buildfile index 1230338..217ff70 100644 --- a/unit-tests/test/script/regex/buildfile +++ b/unit-tests/test/script/regex/buildfile @@ -2,12 +2,5 @@ # copyright : Copyright (c) 2014-2017 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file -#@@ Temporary until we get utility library support. -# -import libs = libbutl%lib{butl} -src = test/script/regex - -exe{driver}: {hxx cxx}{*} ../../../../build2/cxx{$src} \ - ../../../../build2/liba{b} $libs - include ../../../../build2/ +exe{driver}: {hxx cxx}{*} ../../../../build2/libu{b} -- cgit v1.1