Make exec_process_unittest.cc work with Python 3. Use the print() function rather than the print statement. Change-Id: I02d64aed61c2c423fe3d76d1d981f6d235f92f39 Reviewed-on: https://gn-review.googlesource.com/c/gn/+/5280 Reviewed-by: Brett Wilson <brettw@google.com> Commit-Queue: Brett Wilson <brettw@google.com>
diff --git a/tools/gn/exec_process_unittest.cc b/tools/gn/exec_process_unittest.cc index 647bf42..993f2d7 100644 --- a/tools/gn/exec_process_unittest.cc +++ b/tools/gn/exec_process_unittest.cc
@@ -70,7 +70,7 @@ std::string std_out, std_err; int exit_code; - ASSERT_TRUE(ExecPython("import sys; print 'o' * 1000000", &std_out, &std_err, + ASSERT_TRUE(ExecPython("import sys; print('o' * 1000000)", &std_out, &std_err, &exit_code)); EXPECT_EQ(0, exit_code); EXPECT_EQ(1000001u, std_out.size()); @@ -80,18 +80,20 @@ std::string std_out, std_err; int exit_code; - ASSERT_TRUE(ExecPython( - "import sys; print 'o' * 10000; print >>sys.stderr, 'e' * 10000", - &std_out, &std_err, &exit_code)); + ASSERT_TRUE( + ExecPython("from __future__ import print_function; import sys; print('o' " + "* 10000); print('e' * 10000, file=sys.stderr)", + &std_out, &std_err, &exit_code)); EXPECT_EQ(0, exit_code); EXPECT_EQ(10001u, std_out.size()); EXPECT_EQ(10001u, std_err.size()); std_out.clear(); std_err.clear(); - ASSERT_TRUE(ExecPython( - "import sys; print >>sys.stderr, 'e' * 10000; print 'o' * 10000", - &std_out, &std_err, &exit_code)); + ASSERT_TRUE( + ExecPython("from __future__ import print_function; import sys; print('e' " + "* 10000, file=sys.stderr); print('o' * 10000)", + &std_out, &std_err, &exit_code)); EXPECT_EQ(0, exit_code); EXPECT_EQ(10001u, std_out.size()); EXPECT_EQ(10001u, std_err.size()); @@ -101,7 +103,7 @@ std::string std_out, std_err; int exit_code; - ASSERT_TRUE(ExecPython("import sys; sys.stderr.close(); print 'o' * 10000", + ASSERT_TRUE(ExecPython("import sys; sys.stderr.close(); print('o' * 10000)", &std_out, &std_err, &exit_code)); EXPECT_EQ(0, exit_code); EXPECT_EQ(10001u, std_out.size()); @@ -109,9 +111,10 @@ std_out.clear(); std_err.clear(); - ASSERT_TRUE(ExecPython( - "import sys; sys.stdout.close(); print >>sys.stderr, 'e' * 10000", - &std_out, &std_err, &exit_code)); + ASSERT_TRUE( + ExecPython("from __future__ import print_function; import sys; " + "sys.stdout.close(); print('e' * 10000, file=sys.stderr)", + &std_out, &std_err, &exit_code)); EXPECT_EQ(0, exit_code); EXPECT_EQ(0u, std_out.size()); EXPECT_EQ(10001u, std_err.size());