static env

This commit is contained in:
Maxim Devaev 2022-11-07 16:17:13 +03:00
parent 68b3dd4fd0
commit 29bd1e2f6f
6 changed files with 36 additions and 11 deletions

View File

@ -104,14 +104,13 @@ run: testenv $(TESTENV_GPIO)
--volume `pwd`/testenv/run:/run/kvmd:rw \
--volume `pwd`/testenv:/testenv:ro \
--volume `pwd`/kvmd:/kvmd:ro \
--volume `pwd`/testenv/env.py:/kvmd/env.py:ro \
--volume `pwd`/web:/usr/share/kvmd/web:ro \
--volume `pwd`/extras:/usr/share/kvmd/extras:ro \
--volume `pwd`/configs:/usr/share/kvmd/configs.default:ro \
--volume `pwd`/contrib/keymaps:/usr/share/kvmd/keymaps:ro \
--device $(TESTENV_VIDEO):$(TESTENV_VIDEO) \
--device $(TESTENV_GPIO):$(TESTENV_GPIO) \
--env KVMD_SYSFS_PREFIX=/fake_sysfs \
--env KVMD_PROCFS_PREFIX=/fake_procfs \
$(if $(TESTENV_RELAY),--device $(TESTENV_RELAY):$(TESTENV_RELAY),) \
--publish 8080:80/tcp \
--publish 4430:443/tcp \

View File

@ -20,12 +20,7 @@
# ========================================================================== #
import os
# =====
# XXX: Don't use these variables for any purpose other than testing.
# It can be removed at any time.
SYSFS_PREFIX = str(os.getenv("KVMD_SYSFS_PREFIX", "")).strip()
PROCFS_PREFIX = str(os.getenv("KVMD_PROCFS_PREFIX", "")).strip()
ETC_PREFIX = ""
SYSFS_PREFIX = ""
PROCFS_PREFIX = ""

View File

@ -23,6 +23,8 @@
import re
import dataclasses
from . import env
# =====
class PartitionType:
@ -43,7 +45,7 @@ class Partition:
def find_partition(part_type: str) -> Partition:
assert part_type in PartitionType.ALL
fstab_path = "/etc/fstab"
fstab_path = f"{env.ETC_PREFIX}/etc/fstab"
with open(fstab_path) as file:
for line in file.read().split("\n"):
line = line.strip()

View File

@ -107,5 +107,6 @@ RUN mkdir -p \
COPY testenv/fakes/vcgencmd /opt/vc/bin/
COPY testenv/fakes/sys /fake_sysfs/sys
COPY testenv/fakes/proc /fake_procfs/proc
COPY testenv/fakes/etc /fake_etc/etc
CMD /bin/bash

26
testenv/env.py Normal file
View File

@ -0,0 +1,26 @@
# ========================================================================== #
# #
# KVMD - The main PiKVM daemon. #
# #
# Copyright (C) 2018-2022 Maxim Devaev <mdevaev@gmail.com> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation, either version 3 of the License, or #
# (at your option) any later version. #
# #
# This program is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# You should have received a copy of the GNU General Public License #
# along with this program. If not, see <https://www.gnu.org/licenses/>. #
# #
# ========================================================================== #
# =====
ETC_PREFIX = "/fake_etc"
SYSFS_PREFIX = "/fake_sysfs"
PROCFS_PREFIX = "/fake_procfs"

2
testenv/fakes/etc/fstab Normal file
View File

@ -0,0 +1,2 @@
LABEL=PIPST /var/lib/kvmd/pst ext4 nodev,nosuid,noexec,ro,errors=remount-ro,data=journal,X-kvmd.pst-user=kvmd-pst 0 0
LABEL=PIMSD /var/lib/kvmd/msd ext4 nodev,nosuid,noexec,ro,errors=remount-ro,data=journal,X-kvmd.otgmsd-user=kvmd 0 0