cbuildbot_launch: Setup umask before starting build.

When cbuildbot_launch is invoked, umask may be set to an arbitrary
value, so fix it up to a known value.

Added a new unittest, and it passes in isolation, but fails when run
in parallel with other tests, so I marked it as skip, for now.

BUG=chromium:710900
TEST=cbuildbot_launch_test

Change-Id: I67dddde806813332782eeecf7d5c8d9921e8cb26
Reviewed-on: https://chromium-review.googlesource.com/476073
Tested-by: Don Garrett <dgarrett@chromium.org>
Trybot-Ready: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Paul Hobbs <phobbs@google.com>
Commit-Queue: Don Garrett <dgarrett@chromium.org>
diff --git a/scripts/cbuildbot_launch.py b/scripts/cbuildbot_launch.py
index 97bb14f..2506e53 100644
--- a/scripts/cbuildbot_launch.py
+++ b/scripts/cbuildbot_launch.py
@@ -69,7 +69,7 @@
   #   1) osutils.RmDir('chroot')
   #   2) osutils.RmDir('.cache')
   #   3) EmptyDir(buildroot, excludes=['.repo'])
-  #   4) EmptyDir(buildroot)
+  #   4) rm -rf buildroot
 
   state_file = os.path.join(buildroot, '.cbuildbot_launch_state')
   new_state = branchname or 'TOT'
@@ -150,6 +150,14 @@
   logging.debug('cbuildbot result is: %s', result.returncode)
   return result.returncode
 
+def ConfigureGlobalEnvironment():
+  """Setup process wide environmental changes."""
+  # Turn on strict sudo checks.
+  cros_build_lib.STRICT_SUDO = True
+
+  # Set umask to 022 so files created by buildbot are readable.
+  os.umask(0o22)
+
 
 def main(argv):
   """main method of script.
@@ -160,6 +168,8 @@
   Returns:
     Return code of cbuildbot as an integer.
   """
+  ConfigureGlobalEnvironment()
+
   # Specified branch, or 'master'
   options = PreParseArguments(argv)