# Copyright 2014 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 the namespaces.py module.""" from __future__ import print_function import errno import os import unittest from chromite.lib import cros_test_lib from chromite.lib import namespaces class SetNSTests(cros_test_lib.TestCase): """Tests for SetNS()""" def testBasic(self): """Simple functionality test.""" NS_PATH = '/proc/self/ns/mnt' if not os.path.exists(NS_PATH): raise unittest.SkipTest('kernel too old (missing %s)' % NS_PATH) with open(NS_PATH) as f: try: namespaces.SetNS(f.fileno(), 0) except OSError as e: if e.errno != errno.EPERM: # Running as non-root will fail, so ignore it. We ran most # of the code in the process which is all we really wanted. raise class UnshareTests(cros_test_lib.TestCase): """Tests for Unshare()""" def testBasic(self): """Simple functionality test.""" try: namespaces.Unshare(namespaces.CLONE_NEWNS) except OSError as e: if e.errno != errno.EPERM: # Running as non-root will fail, so ignore it. We ran most # of the code in the process which is all we really wanted. raise