Я попробовал прикрутить vm-run для unit тестов btrfs и в целом много что работает, но есть некоторые моменты, которые не получается проверять при запуске виртуальной машины без возможности записи в корневую файловую систему. Например, из-за отсутствия запущенного udev в vm не работает dmsetup для thin-pool. Или из-за невозможности выполнять mknod в произвольном каталоге - тест на создание файловой системы с устройствами из каталого. Есть предложение подумать в сторону запуска vm с overlayfs, когда у псевдо-рута vm появляется возможность выполнять запись в overlay, а не в смонтированную в vm файловую систему. Возможно, overlay нужен только для тех каталогов, которые недоступны для записи пользователю builder из hasher.
+1 В crun и ravada некоторые тесты тоже не проходят из-за невозможности писать в корневую FS.
Иногда мне помогает запуск fakeroot внутри vm, но, к сожалению, настоящие устройства и файлы через это не делаются.
Это btrfs-progs? Как лучше воспроизвести тесты если я захочу поэкспериментировать?
Я отправил задание #293721 с btrfs-progs с включенными тестами. Эту же версию выложил к себе в git: https://git.altlinux.org/people/rider/packages/?p=btrfs-progs.git;a=commit;h=b8554864a4784cbe7ab193287c6b7e42e9fa0fdf В specfile удаляются тесты, которые не проходят. Можно запустить сборку в hasher, потом прервать, зайти внутрь чрута, собрать как rpmbuild -bc btrfs-progs.spec Потом перейти в ~/RPM/BUILD/btrfs-progs-5.16/tests/ И запустить, например: vm-run --sbin --udevd TEST=001\* ./convert-tests.sh или vm-run --sbin --udevd TEST=009\* ./mkfs-tests.sh
с udevd я разобрался, параметр --udevd у vm-run решает проблемы с двумя тестами, которым нужен работающий udev (с dmsetup). https://git.altlinux.org/tasks/293721/logs/events.2.1.log - тут на x86_64 и aarch64 уже собралось нормально, но отключены те тесты, которым нужна запись на раздел специфичных файлов устройств. На i586 упало ядро, на ppc64 упал тест, но скорее всего тоже где-то в ядре, надо разбираться.
Спасибо, попробую.