auto-t: remove requirement for /var/lib/{ead,iwd}

The host systems configuration directories for IWD/EAD were
being mounted in the virtual machine. This required that the
host create these directories before hand. Instead we can
just set up the system and IWD/EAD to use directories in /tmp
that we create when we start the VM. This avoids the need for
any host configuration.
This commit is contained in:
James Prestwood 2020-10-14 09:55:57 -07:00 committed by Denis Kenzior
parent 008b29f359
commit 313d8dbbed
3 changed files with 16 additions and 11 deletions

View File

@ -2,6 +2,7 @@
import unittest import unittest
import sys import sys
import os
sys.path.append('../util') sys.path.append('../util')
from iwd import IWD from iwd import IWD
@ -11,7 +12,9 @@ from ead import EAD
class Test(unittest.TestCase): class Test(unittest.TestCase):
def test_connection_success(self): def test_connection_success(self):
ctx.start_process(['ead', '-i', 'eth1', '-d']) env = os.environ.copy()
env['STATE_DIRECTORY'] = '/tmp/ead'
ctx.start_process(['ead', '-i', 'eth1', '-d'], env=env)
ead = EAD() ead = EAD()
@ -25,11 +28,13 @@ class Test(unittest.TestCase):
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
IWD.copy_to_storage('default.8021x', storage_dir='/var/lib/ead') os.mkdir('/tmp/ead')
IWD.copy_to_storage('default.8021x', storage_dir='/tmp/ead')
@classmethod @classmethod
def tearDownClass(cls): def tearDownClass(cls):
IWD.clear_storage() IWD.clear_storage(storage_dir='/tmp/ead')
if __name__ == '__main__': if __name__ == '__main__':
unittest.main(exit=True) unittest.main(exit=True)

View File

@ -17,8 +17,8 @@ from enum import Enum
from config import ctx from config import ctx
IWD_STORAGE_DIR = '/var/lib/iwd' IWD_STORAGE_DIR = '/tmp/iwd'
IWD_CONFIG_DIR = '/etc/iwd' IWD_CONFIG_DIR = '/tmp'
DBUS_OBJECT_MANAGER = 'org.freedesktop.DBus.ObjectManager' DBUS_OBJECT_MANAGER = 'org.freedesktop.DBus.ObjectManager'
DBUS_PROPERTIES = 'org.freedesktop.DBus.Properties' DBUS_PROPERTIES = 'org.freedesktop.DBus.Properties'
@ -909,9 +909,9 @@ class IWD(AsyncOpAbstract):
GLib.source_remove(timeout) GLib.source_remove(timeout)
@staticmethod @staticmethod
def clear_storage(): def clear_storage(storage_dir=IWD_STORAGE_DIR):
os.system('rm -rf ' + IWD_STORAGE_DIR + '/*') os.system('rm -rf ' + storage_dir + '/*')
os.system('rm -rf ' + IWD_STORAGE_DIR + '/hotspot/*') os.system('rm -rf ' + storage_dir + '/hotspot/*')
@staticmethod @staticmethod
def create_in_storage(file_name, file_content): def create_in_storage(file_name, file_content):

View File

@ -112,8 +112,6 @@ mount_table = [
MountInfo('devpts', '/dev/pts', 'mode=0620', MS_NOSUID|MS_NOEXEC), MountInfo('devpts', '/dev/pts', 'mode=0620', MS_NOSUID|MS_NOEXEC),
MountInfo('tmpfs', '/dev/shm', 'mode=1777', MS_NOSUID|MS_NODEV|MS_STRICTATIME), MountInfo('tmpfs', '/dev/shm', 'mode=1777', MS_NOSUID|MS_NODEV|MS_STRICTATIME),
MountInfo('tmpfs', '/run', 'mode=0755', MS_NOSUID|MS_NODEV|MS_STRICTATIME), MountInfo('tmpfs', '/run', 'mode=0755', MS_NOSUID|MS_NODEV|MS_STRICTATIME),
MountInfo('tmpfs', '/var/lib/iwd', 'mode=0755', 0),
MountInfo('tmpfs', '/var/lib/ead', 'mode=0755', 0),
MountInfo('tmpfs', '/tmp', '', 0), MountInfo('tmpfs', '/tmp', '', 0),
MountInfo('tmpfs', '/usr/share/dbus-1', 'mode=0755', MS_NOSUID|MS_NOEXEC|MS_NODEV|MS_STRICTATIME), MountInfo('tmpfs', '/usr/share/dbus-1', 'mode=0755', MS_NOSUID|MS_NOEXEC|MS_NODEV|MS_STRICTATIME),
MountInfo('debugfs', '/sys/kernel/debug', '', 0) MountInfo('debugfs', '/sys/kernel/debug', '', 0)
@ -572,7 +570,7 @@ class TestContext:
env = os.environ.copy() env = os.environ.copy()
env['CONFIGURATION_DIRECTORY'] = config_dir env['CONFIGURATION_DIRECTORY'] = config_dir
env['STATE_DIRECTORY'] = '/var/lib/iwd' env['STATE_DIRECTORY'] = '/tmp/iwd'
if self.is_verbose('iwd-dhcp'): if self.is_verbose('iwd-dhcp'):
env['IWD_DHCP_DEBUG'] = '1' env['IWD_DHCP_DEBUG'] = '1'
@ -742,6 +740,8 @@ def prepare_sandbox():
for entry in dev_table: for entry in dev_table:
os.symlink(entry.target, entry.linkpath) os.symlink(entry.target, entry.linkpath)
os.mkdir('/tmp/iwd')
os.setsid() os.setsid()
fcntl.ioctl(STDIN_FILENO, TIOCSTTY, 1) fcntl.ioctl(STDIN_FILENO, TIOCSTTY, 1)