From dbed808c7d534069f76e63a1a68a85f30d2be81c Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Tue, 10 Sep 2019 23:23:43 +0300 Subject: Move testscript builtins to libbutl --- libbuild2/test/script/builtin.hxx | 74 --------------------------------------- 1 file changed, 74 deletions(-) delete mode 100644 libbuild2/test/script/builtin.hxx (limited to 'libbuild2/test/script/builtin.hxx') diff --git a/libbuild2/test/script/builtin.hxx b/libbuild2/test/script/builtin.hxx deleted file mode 100644 index b340335..0000000 --- a/libbuild2/test/script/builtin.hxx +++ /dev/null @@ -1,74 +0,0 @@ -// file : libbuild2/test/script/builtin.hxx -*- C++ -*- -// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd -// license : MIT; see accompanying LICENSE file - -#ifndef LIBBUILD2_TEST_SCRIPT_BUILTIN_HXX -#define LIBBUILD2_TEST_SCRIPT_BUILTIN_HXX - -#include - -#include -#include - -namespace build2 -{ - namespace test - { - namespace script - { - class scope; - - // A process/thread-like object representing a running builtin. - // - // For now, instead of allocating the result storage dynamically, we - // expect it to be provided by the caller. - // - class builtin - { - public: - uint8_t - wait () {if (t_.joinable ()) t_.join (); return r_;} - - ~builtin () {wait ();} - - public: - builtin (uint8_t& r, thread&& t = thread ()): r_ (r), t_ (move (t)) {} - - builtin (builtin&&) = default; - - private: - uint8_t& r_; - thread t_; - }; - - // Start builtin command. Throw system_error on failure. - // - // Note that unlike argc/argv, our args don't include the program name. - // - using builtin_func = builtin (scope&, - uint8_t& result, - const strings& args, - auto_fd in, auto_fd out, auto_fd err); - - class builtin_map: public std::map - { - public: - using base = std::map; - using base::base; - - // Return NULL if not a builtin. - // - builtin_func* - find (const string& n) const - { - auto i (base::find (n)); - return i != end () ? i->second : nullptr; - } - }; - - extern const builtin_map builtins; - } - } -} - -#endif // LIBBUILD2_TEST_SCRIPT_BUILTIN_HXX -- cgit v1.1