tools/mpremote/tests: Add tests for mpremote rm -r.

Signed-off-by: Jos Verlinde <Jos_Verlinde@hotmail.com>
This commit is contained in:
Jos Verlinde
2025-04-07 23:01:21 +02:00
committed by Damien George
parent 1aa9b3d94b
commit 72d4c40941
2 changed files with 140 additions and 0 deletions

View File

@@ -170,3 +170,67 @@ EOF
$MPREMOTE resume cp -r "${TMP}/package" : $MPREMOTE resume cp -r "${TMP}/package" :
$MPREMOTE resume ls : :package :package/subpackage $MPREMOTE resume ls : :package :package/subpackage
$MPREMOTE resume exec "import package; package.x(); package.y()" $MPREMOTE resume exec "import package; package.x(); package.y()"
echo -----
# Test rm -r functionality
# start with a fresh ramdisk before each test
# rm -r MCU current working directory
$MPREMOTE run "${TMP}/ramdisk.py"
$MPREMOTE resume touch :a.py
$MPREMOTE resume touch :b.py
$MPREMOTE resume cp -r "${TMP}/package" :
$MPREMOTE resume rm -r -v :
$MPREMOTE resume ls :
$MPREMOTE resume ls :/ramdisk
echo -----
# rm -r relative subfolder
$MPREMOTE run "${TMP}/ramdisk.py"
$MPREMOTE resume touch :a.py
$MPREMOTE resume mkdir :testdir
$MPREMOTE resume cp -r "${TMP}/package" :testdir/package
$MPREMOTE resume ls :testdir
$MPREMOTE resume ls :testdir/package
$MPREMOTE resume rm -r :testdir/package
$MPREMOTE resume ls :/ramdisk
$MPREMOTE resume ls :testdir
echo -----
# rm -r non-existent path
$MPREMOTE run "${TMP}/ramdisk.py"
$MPREMOTE resume ls :
$MPREMOTE resume rm -r :nonexistent || echo "expect error"
echo -----
# rm -r absolute root
# no -v to generate same output on stm32 and other ports
$MPREMOTE run "${TMP}/ramdisk.py"
$MPREMOTE resume touch :a.py
$MPREMOTE resume touch :b.py
$MPREMOTE resume cp -r "${TMP}/package" :
$MPREMOTE resume cp -r "${TMP}/package" :package2
$MPREMOTE resume rm -r :/ || echo "expect error"
$MPREMOTE resume ls :
$MPREMOTE resume ls :/ramdisk
echo -----
# rm -r relative mountpoint
$MPREMOTE run "${TMP}/ramdisk.py"
$MPREMOTE resume touch :a.py
$MPREMOTE resume touch :b.py
$MPREMOTE resume cp -r "${TMP}/package" :
$MPREMOTE resume exec "import os;os.chdir('/')"
$MPREMOTE resume rm -r -v :ramdisk
$MPREMOTE resume ls :/ramdisk
echo -----
# rm -r absolute mountpoint
$MPREMOTE run "${TMP}/ramdisk.py"
$MPREMOTE resume touch :a.py
$MPREMOTE resume touch :b.py
$MPREMOTE resume cp -r "${TMP}/package" :
$MPREMOTE resume exec "import os;os.chdir('/')"
$MPREMOTE resume rm -r -v :/ramdisk
$MPREMOTE resume ls :/ramdisk
echo -----

View File

@@ -191,3 +191,79 @@ ls :package/subpackage
23 y.py 23 y.py
x x
y2 y2
-----
touch :a.py
touch :b.py
cp ${TMP}/package :
rm :
removed: './a.py'
removed: './b.py'
removed: './package/subpackage/__init__.py'
removed: './package/subpackage/y.py'
removed directory: './package/subpackage'
removed: './package/__init__.py'
removed: './package/x.py'
removed directory: './package'
ls :
ls :/ramdisk
-----
touch :a.py
mkdir :testdir
cp ${TMP}/package :testdir/package
ls :testdir
0 package/
ls :testdir/package
0 subpackage/
43 __init__.py
22 x.py
rm :testdir/package
ls :/ramdisk
0 a.py
0 testdir/
ls :testdir
-----
ls :
rm :nonexistent
mpremote: rm: nonexistent: No such file or directory.
expect error
-----
touch :a.py
touch :b.py
cp ${TMP}/package :
cp ${TMP}/package :package2
rm :/
mpremote: rm -r: cannot remove :/ Operation not permitted
expect error
ls :
ls :/ramdisk
-----
touch :a.py
touch :b.py
cp ${TMP}/package :
rm :ramdisk
removed: 'ramdisk/a.py'
removed: 'ramdisk/b.py'
removed: 'ramdisk/package/subpackage/__init__.py'
removed: 'ramdisk/package/subpackage/y.py'
removed directory: 'ramdisk/package/subpackage'
removed: 'ramdisk/package/__init__.py'
removed: 'ramdisk/package/x.py'
removed directory: 'ramdisk/package'
skipped: 'ramdisk' (vfs mountpoint)
ls :/ramdisk
-----
touch :a.py
touch :b.py
cp ${TMP}/package :
rm :/ramdisk
removed: '/ramdisk/a.py'
removed: '/ramdisk/b.py'
removed: '/ramdisk/package/subpackage/__init__.py'
removed: '/ramdisk/package/subpackage/y.py'
removed directory: '/ramdisk/package/subpackage'
removed: '/ramdisk/package/__init__.py'
removed: '/ramdisk/package/x.py'
removed directory: '/ramdisk/package'
skipped: '/ramdisk' (vfs mountpoint)
ls :/ramdisk
-----