From 977d07a3ae47ef204665d1eda2d642e5064724f3 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 24 Jun 2019 12:01:19 +0200 Subject: Split build system into library and driver --- build2/function.test.cxx | 134 ----------------------------------------------- 1 file changed, 134 deletions(-) delete mode 100644 build2/function.test.cxx (limited to 'build2/function.test.cxx') diff --git a/build2/function.test.cxx b/build2/function.test.cxx deleted file mode 100644 index b890bcd..0000000 --- a/build2/function.test.cxx +++ /dev/null @@ -1,134 +0,0 @@ -// file : build2/function.test.cxx -*- C++ -*- -// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd -// license : MIT; see accompanying LICENSE file - -#include - -#include -#include - -#include -#include -#include -#include -#include - -using namespace std; - -namespace build2 -{ - static const optional arg_bool[1] = - { - &value_traits::value_type - }; - - static dir_path - scoped (const scope*, dir_path d) - { - return d; - } - - static void - scoped_void (const scope*, dir_path) - { - } - - int - main (int, char* argv[]) - { - // Fake build system driver, default verbosity. - // - init_diag (1); - init (argv[0]); - reset (strings ()); // No command line variables. - - function_family f ("dummy"); - - f["fail"] = []() {fail << "failed" << endf;}; - f["fail_arg"] = [](names a) {return convert (move (a[0]));}; - - f["nullable"] = [](names* a) {return a == nullptr;}; - f["optional"] = [](optional a) {return !a;}; - - f["dummy0"] = []() {return "abc";}; - f["dummy1"] = [](string s) {return s;}; - f["dummy2"] = [](uint64_t x, uint64_t y) {return x + y;}; - - f["ambig"] = [](names a, optional) {return a;}; - f["ambig"] = [](names a, optional) {return a;}; - - f["reverse"] = [](names a) {return a;}; - - f["scoped"] = [](const scope*, names a) {return a;}; - f["scoped_void"] = [](const scope*, names) {}; - f["scoped"] = &scoped; - f["scoped_void"] = &scoped_void; - - f[".qual"] = []() {return "abc";}; - - f[".length"] = &path::size; // Member function. - f[".type"] = &name::type; // Data member. - - f[".abs"] = [](dir_path d) {return d.absolute ();}; - - // Variadic function with first required argument of type bool. Returns - // number of arguments passed. - // - functions.insert ( - "variadic", - function_overload ( - nullptr, - 1, - function_overload::arg_variadic, - function_overload::types (arg_bool, 1), - [] (const scope*, vector_view args, const function_overload&) - { - return value (static_cast (args.size ())); - })); - - // Dump arguments. - // - functions.insert ( - "dump", - function_overload ( - nullptr, - 0, - function_overload::arg_variadic, - function_overload::types (), - [] (const scope*, vector_view args, const function_overload&) - { - for (value& a: args) - { - if (a.null) - cout << "[null]"; - else if (!a.empty ()) - { - names storage; - cout << reverse (a, storage); - } - cout << endl; - } - return value (nullptr); - })); - - try - { - scope& s (*scope::global_); - - parser p; - p.parse_buildfile (cin, path ("buildfile"), s, s); - } - catch (const failed&) - { - return 1; - } - - return 0; - } -} - -int -main (int argc, char* argv[]) -{ - return build2::main (argc, argv); -} -- cgit v1.1