From abbb859d9eefa62a5cc774bd08020bf30ad77c26 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 13 Apr 2017 10:47:47 +0200 Subject: Implement sendmail process --- tests/sendmail/buildfile | 7 +++++++ tests/sendmail/driver.cxx | 42 ++++++++++++++++++++++++++++++++++++++++++ tests/sendmail/testscript | 10 ++++++++++ 3 files changed, 59 insertions(+) create mode 100644 tests/sendmail/buildfile create mode 100644 tests/sendmail/driver.cxx create mode 100644 tests/sendmail/testscript (limited to 'tests/sendmail') diff --git a/tests/sendmail/buildfile b/tests/sendmail/buildfile new file mode 100644 index 0000000..ddc8bca --- /dev/null +++ b/tests/sendmail/buildfile @@ -0,0 +1,7 @@ +# file : tests/sendmail/buildfile +# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +exe{driver}: cxx{driver} ../../butl/lib{butl} test{testscript} + +include ../../butl/ 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 +#include + +#include +#include // operator<<(ostream, exception) +#include + +using namespace std; +using namespace butl; + +// Usage: argv[0] +// +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; +} diff --git a/tests/sendmail/testscript b/tests/sendmail/testscript new file mode 100644 index 0000000..49776a3 --- /dev/null +++ b/tests/sendmail/testscript @@ -0,0 +1,10 @@ +# file : tests/sendmail/testscript +# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +$* admin@build2.org <>EOE +Test email to admin@build2.org. +Sent from libbutl/tests/sendmail/testscript. +EOI +sendmail -i -t +EOE -- cgit v1.1