aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/test/operation.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'libbuild2/test/operation.cxx')
-rw-r--r--libbuild2/test/operation.cxx55
1 files changed, 55 insertions, 0 deletions
diff --git a/libbuild2/test/operation.cxx b/libbuild2/test/operation.cxx
new file mode 100644
index 0000000..3ff7702
--- /dev/null
+++ b/libbuild2/test/operation.cxx
@@ -0,0 +1,55 @@
+// file : libbuild2/test/operation.cxx -*- C++ -*-
+// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
+// license : MIT; see accompanying LICENSE file
+
+#include <libbuild2/test/operation.hxx>
+
+using namespace std;
+using namespace butl;
+
+namespace build2
+{
+ namespace test
+ {
+ static operation_id
+ test_pre (const values& params, meta_operation_id mo, const location& l)
+ {
+ if (!params.empty ())
+ fail (l) << "unexpected parameters for operation test";
+
+ // Run update as a pre-operation, unless we are disfiguring.
+ //
+ return mo != disfigure_id ? update_id : 0;
+ }
+
+ const operation_info op_test {
+ test_id,
+ 0,
+ "test",
+ "test",
+ "testing",
+ "tested",
+ "has nothing to test", // We cannot "be tested".
+ execution_mode::first,
+ 1,
+ &test_pre,
+ nullptr
+ };
+
+ // Also the explicit update-for-test operation alias.
+ //
+ const operation_info op_update_for_test {
+ update_id, // Note: not update_for_test_id.
+ test_id,
+ op_update.name,
+ op_update.name_do,
+ op_update.name_doing,
+ op_update.name_did,
+ op_update.name_done,
+ op_update.mode,
+ op_update.concurrency,
+ op_update.pre,
+ op_update.post
+ };
+ }
+}