blob: 40df298e6f8b1f34f63564379a832d2aa36412ee [file] [log] [blame] [edit]
# Copyright 2021 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Unittests for remoteexec_util.py"""
from pathlib import Path
from chromite.lib import cros_test_lib
from chromite.lib import osutils
from chromite.lib import remoteexec_util
class TestRemoteexecUtil(cros_test_lib.MockTempDirTestCase,
cros_test_lib.RunCommandTestCase):
"""Tests for remoteexec_util."""
def setUp(self):
self.reclient_dir = self.tempdir / 'cipd' / 'rbe'
self.reproxy_cfg_file = (
self.tempdir / 'reclient_cfgs' / 'reproxy_config.cfg')
osutils.SafeMakedirs(self.reclient_dir)
osutils.SafeMakedirs(self.reproxy_cfg_file)
self.remote = remoteexec_util.Remoteexec(self.reclient_dir,
self.reproxy_cfg_file)
def testExtraEnvCustomChroot(self):
"""Test that the extra chroot envs for remoteexec are correct."""
chroot_env = self.remote.GetChrootExtraEnv()
self.assertEndsWith(chroot_env['RECLIENT_DIR'], '/reclient')
self.assertEndsWith(chroot_env['REPROXY_CFG'], '/reproxy_chroot.cfg')
def testInvalidArg(self):
"""Test the remoteexec with invalid argument."""
with self.assertRaises(ValueError):
remoteexec_util.Remoteexec(Path('/some/path'), self.reproxy_cfg_file)
with self.assertRaises(ValueError):
remoteexec_util.Remoteexec(self.reclient_dir, 'some_conf_file')
def testRemoteExecCommand(self):
"""Test the remoteexec command interface."""
bootstrap_cmd = self.reclient_dir / 'bootstrap'
reproxy_cmd = self.reclient_dir / 'reproxy'
self.remote.Start()
self.assertCommandCalled([
bootstrap_cmd,
'--cfg',
self.reproxy_cfg_file,
'--re_proxy',
reproxy_cmd,
])
self.remote.Stop()
self.assertCommandCalled([
bootstrap_cmd,
'--cfg',
self.reproxy_cfg_file,
'--re_proxy',
reproxy_cmd,
'--shutdown',
])