diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2017-04-13 10:47:47 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2017-04-13 10:47:47 +0200 |
commit | abbb859d9eefa62a5cc774bd08020bf30ad77c26 (patch) | |
tree | ac2b8648dc9d792154680bff38e5c3f1be73264d /tests/sendmail/driver.cxx | |
parent | 714ce38164dbb4b19be8db286182dba3784d471f (diff) |
Implement sendmail process
Diffstat (limited to 'tests/sendmail/driver.cxx')
-rw-r--r-- | tests/sendmail/driver.cxx | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/sendmail/driver.cxx b/tests/sendmail/driver.cxx new file mode 100644 index 0000000..9e1af96 --- /dev/null +++ b/tests/sendmail/driver.cxx @@ -0,0 +1,42 @@ +// file : tests/sendmail/driver.cxx -*- C++ -*- +// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +// license : MIT; see accompanying LICENSE file + +#include <iostream> +#include <system_error> + +#include <butl/path> +#include <butl/utility> // operator<<(ostream, exception) +#include <butl/sendmail> + +using namespace std; +using namespace butl; + +// Usage: argv[0] <to> +// +int +main (int argc, const char* argv[]) +try +{ + assert (argc == 2); + + sendmail sm ([] (const char* c[], std::size_t n) + { + process::print (cerr, c, n); cerr << endl; + }, + 2, + "", + "tests/sendmail/driver", + {argv[1]}); + + sm.out << cin.rdbuf (); + sm.out.close (); + + if (!sm.wait ()) + return 1; // Assume diagnostics has been issued. +} +catch (const system_error& e) +{ + cerr << argv[0] << ": " << e << endl; + return 1; +} |