From ca0fa738650ab546b1422e0b2dbfdc89ba8eb5a3 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 6 Apr 2020 16:19:38 +0200 Subject: Add ability to print process_env environment --- tests/process/driver.cxx | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'tests') diff --git a/tests/process/driver.cxx b/tests/process/driver.cxx index 7a0f38b..3be4154 100644 --- a/tests/process/driver.cxx +++ b/tests/process/driver.cxx @@ -7,6 +7,7 @@ #include #include #include +#include #include // istreambuf_iterator, ostream_iterator #include // copy() #include @@ -28,6 +29,7 @@ import butl.fdstream; #include #include #include +#include #include #include #endif @@ -474,4 +476,38 @@ main (int argc, const char* argv[]) assert (!exec (path ("testX.bat"))); } #endif + + // Test printing process_env to stream. + // + { + auto str = [] (const process_env& env) + { + ostringstream os; + os << env; + return os.str (); + }; + + process_path p; + + assert (str (process_env (p)) == ""); + + { + dir_path d ("dir"); + dir_path ds ("d ir"); + assert (str (process_env (p, d)) == "PWD=dir"); + assert (str (process_env (p, ds)) == "PWD=\"d ir\""); + } + + { + dir_path ed; // Empty. + const char* vars[] = {nullptr}; + assert (str (process_env (p, ed, vars)) == ""); + } + + { + const char* vars[] = {"A=B", "A=B C", "A B=C", "A", "A B", nullptr}; + assert (str (process_env (p, vars)) == + "A=B A=\"B C\" \"A B=C\" A= \"A B=\""); + } + } } -- cgit v1.1