The file system internals were recently touched to enable easier porting of the 9P file system. This led to regressions[1][2] that broke unmounting a volumes.
Add a simple regression test that would have caught the two described issues. [1]: a3ef153fdf26 ("fs: unreference path on file close") [2]: aef3b0134519 ("fs: unreference path in canonicalize_path()") Signed-off-by: Ahmad Fatoum <a.fat...@barebox.org> --- arch/arm/configs/multi_v5_v6_defconfig | 1 + arch/arm/configs/multi_v7_defconfig | 1 + arch/arm/configs/multi_v8_defconfig | 1 + test/py/test_mount.py | 21 +++++++++++++++++++++ 4 files changed, 24 insertions(+) create mode 100644 test/py/test_mount.py diff --git a/arch/arm/configs/multi_v5_v6_defconfig b/arch/arm/configs/multi_v5_v6_defconfig index 2afc072e129c..91d3a63e85ab 100644 --- a/arch/arm/configs/multi_v5_v6_defconfig +++ b/arch/arm/configs/multi_v5_v6_defconfig @@ -38,6 +38,7 @@ CONFIG_CMD_GO=y CONFIG_CMD_RESET=y CONFIG_CMD_UIMAGE=y CONFIG_CMD_PARTITION=y +CONFIG_CMD_FINDMNT=y CONFIG_CMD_UBIFORMAT=y CONFIG_CMD_EXPORT=y CONFIG_CMD_LOADENV=y diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig index 4fb696a10626..726afe8ce6c5 100644 --- a/arch/arm/configs/multi_v7_defconfig +++ b/arch/arm/configs/multi_v7_defconfig @@ -143,6 +143,7 @@ CONFIG_CMD_RESET=y CONFIG_CMD_UIMAGE=y CONFIG_CMD_BOOTCHOOSER=y CONFIG_CMD_PARTITION=y +CONFIG_CMD_FINDMNT=y CONFIG_CMD_UBIFORMAT=y CONFIG_CMD_EXPORT=y CONFIG_CMD_DEFAULTENV=y diff --git a/arch/arm/configs/multi_v8_defconfig b/arch/arm/configs/multi_v8_defconfig index 3d3f3254df20..a487d331d04e 100644 --- a/arch/arm/configs/multi_v8_defconfig +++ b/arch/arm/configs/multi_v8_defconfig @@ -89,6 +89,7 @@ CONFIG_CMD_RESET=y CONFIG_CMD_UIMAGE=y CONFIG_CMD_BOOTCHOOSER=y CONFIG_CMD_PARTITION=y +CONFIG_CMD_FINDMNT=y CONFIG_CMD_EXPORT=y CONFIG_CMD_DEFAULTENV=y CONFIG_CMD_LOADENV=y diff --git a/test/py/test_mount.py b/test/py/test_mount.py new file mode 100644 index 000000000000..33608a3b6ddb --- /dev/null +++ b/test/py/test_mount.py @@ -0,0 +1,21 @@ +# SPDX-License-Identifier: GPL-2.0-only + +from .helper import skip_disabled + + +def test_findmnt_umount(barebox, barebox_config): + skip_disabled(barebox_config, "CONFIG_CMD_FINDMNT") + + barebox.run_check("mount -t ramfs none /tmp") + findmnt_out1 = barebox.run_check("findmnt /tmp") + barebox.run_check("umount /tmp") + + assert len(findmnt_out1) == 2 + + +def test_echo_umount(barebox): + barebox.run_check("mount -t ramfs none /tmp") + barebox.run_check("echo -o /tmp/file test") + barebox.run_check("umount /tmp") + + # Nothing to assert, we are happy if this is reached without exception -- 2.39.5