aboutsummaryrefslogtreecommitdiff
path: root/build2/test/common
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-01-11 10:14:23 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-01-12 10:58:19 +0200
commit9bf93c1ab73ee3cd2b763285fc5fc5456e972854 (patch)
tree0357c36e12fe2137ef6c9bd228e9d69bb2489a02 /build2/test/common
parent33ed305eac57bff406fa3f672ba8acc4941e8f13 (diff)
Implement support for narrowing down tests (config.test)
Diffstat (limited to 'build2/test/common')
-rw-r--r--build2/test/common44
1 files changed, 44 insertions, 0 deletions
diff --git a/build2/test/common b/build2/test/common
new file mode 100644
index 0000000..e9213b6
--- /dev/null
+++ b/build2/test/common
@@ -0,0 +1,44 @@
+// file : build2/test/common -*- C++ -*-
+// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
+// license : MIT; see accompanying LICENSE file
+
+#ifndef BUILD2_TEST_COMMON
+#define BUILD2_TEST_COMMON
+
+#include <build2/types>
+#include <build2/utility>
+
+#include <build2/target>
+
+namespace build2
+{
+ namespace test
+ {
+ struct common
+ {
+ // The config.test query interface.
+ //
+ const names* test_ = nullptr; // The config.test value if any.
+ scope* root_ = nullptr; // The root scope for target resolution.
+
+ // Return true if the specified alias target should pass-through to it
+ // prerequisites.
+ //
+ bool
+ pass (target& alias_target) const;
+
+ // Return true if the specified target should be tested.
+ //
+ bool
+ test (target& test_target) const;
+
+ // Return true if the specified target should be tested with the
+ // specified testscript test (or group).
+ //
+ bool
+ test (target& test_target, const path& id_path) const;
+ };
+ }
+}
+
+#endif // BUILD2_TEST_COMMON