Skip to content

Commit 72d4c40

Browse files
Josverldpgeorge
authored andcommitted
tools/mpremote/tests: Add tests for mpremote rm -r.
Signed-off-by: Jos Verlinde <[email protected]>
1 parent 1aa9b3d commit 72d4c40

File tree

2 files changed

+140
-0
lines changed

2 files changed

+140
-0
lines changed

tools/mpremote/tests/test_filesystem.sh

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,3 +170,67 @@ EOF
170170
$MPREMOTE resume cp -r "${TMP}/package" :
171171
$MPREMOTE resume ls : :package :package/subpackage
172172
$MPREMOTE resume exec "import package; package.x(); package.y()"
173+
174+
echo -----
175+
# Test rm -r functionality
176+
# start with a fresh ramdisk before each test
177+
# rm -r MCU current working directory
178+
$MPREMOTE run "${TMP}/ramdisk.py"
179+
$MPREMOTE resume touch :a.py
180+
$MPREMOTE resume touch :b.py
181+
$MPREMOTE resume cp -r "${TMP}/package" :
182+
$MPREMOTE resume rm -r -v :
183+
$MPREMOTE resume ls :
184+
$MPREMOTE resume ls :/ramdisk
185+
186+
echo -----
187+
# rm -r relative subfolder
188+
$MPREMOTE run "${TMP}/ramdisk.py"
189+
$MPREMOTE resume touch :a.py
190+
$MPREMOTE resume mkdir :testdir
191+
$MPREMOTE resume cp -r "${TMP}/package" :testdir/package
192+
$MPREMOTE resume ls :testdir
193+
$MPREMOTE resume ls :testdir/package
194+
$MPREMOTE resume rm -r :testdir/package
195+
$MPREMOTE resume ls :/ramdisk
196+
$MPREMOTE resume ls :testdir
197+
198+
echo -----
199+
# rm -r non-existent path
200+
$MPREMOTE run "${TMP}/ramdisk.py"
201+
$MPREMOTE resume ls :
202+
$MPREMOTE resume rm -r :nonexistent || echo "expect error"
203+
204+
echo -----
205+
# rm -r absolute root
206+
# no -v to generate same output on stm32 and other ports
207+
$MPREMOTE run "${TMP}/ramdisk.py"
208+
$MPREMOTE resume touch :a.py
209+
$MPREMOTE resume touch :b.py
210+
$MPREMOTE resume cp -r "${TMP}/package" :
211+
$MPREMOTE resume cp -r "${TMP}/package" :package2
212+
$MPREMOTE resume rm -r :/ || echo "expect error"
213+
$MPREMOTE resume ls :
214+
$MPREMOTE resume ls :/ramdisk
215+
216+
echo -----
217+
# rm -r relative mountpoint
218+
$MPREMOTE run "${TMP}/ramdisk.py"
219+
$MPREMOTE resume touch :a.py
220+
$MPREMOTE resume touch :b.py
221+
$MPREMOTE resume cp -r "${TMP}/package" :
222+
$MPREMOTE resume exec "import os;os.chdir('/')"
223+
$MPREMOTE resume rm -r -v :ramdisk
224+
$MPREMOTE resume ls :/ramdisk
225+
226+
echo -----
227+
# rm -r absolute mountpoint
228+
$MPREMOTE run "${TMP}/ramdisk.py"
229+
$MPREMOTE resume touch :a.py
230+
$MPREMOTE resume touch :b.py
231+
$MPREMOTE resume cp -r "${TMP}/package" :
232+
$MPREMOTE resume exec "import os;os.chdir('/')"
233+
$MPREMOTE resume rm -r -v :/ramdisk
234+
$MPREMOTE resume ls :/ramdisk
235+
236+
echo -----

tools/mpremote/tests/test_filesystem.sh.exp

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,3 +191,79 @@ ls :package/subpackage
191191
23 y.py
192192
x
193193
y2
194+
-----
195+
touch :a.py
196+
touch :b.py
197+
cp ${TMP}/package :
198+
rm :
199+
removed: './a.py'
200+
removed: './b.py'
201+
removed: './package/subpackage/__init__.py'
202+
removed: './package/subpackage/y.py'
203+
removed directory: './package/subpackage'
204+
removed: './package/__init__.py'
205+
removed: './package/x.py'
206+
removed directory: './package'
207+
ls :
208+
ls :/ramdisk
209+
-----
210+
touch :a.py
211+
mkdir :testdir
212+
cp ${TMP}/package :testdir/package
213+
ls :testdir
214+
0 package/
215+
ls :testdir/package
216+
0 subpackage/
217+
43 __init__.py
218+
22 x.py
219+
rm :testdir/package
220+
ls :/ramdisk
221+
0 a.py
222+
0 testdir/
223+
ls :testdir
224+
-----
225+
ls :
226+
rm :nonexistent
227+
mpremote: rm: nonexistent: No such file or directory.
228+
expect error
229+
-----
230+
touch :a.py
231+
touch :b.py
232+
cp ${TMP}/package :
233+
cp ${TMP}/package :package2
234+
rm :/
235+
mpremote: rm -r: cannot remove :/ Operation not permitted
236+
expect error
237+
ls :
238+
ls :/ramdisk
239+
-----
240+
touch :a.py
241+
touch :b.py
242+
cp ${TMP}/package :
243+
rm :ramdisk
244+
removed: 'ramdisk/a.py'
245+
removed: 'ramdisk/b.py'
246+
removed: 'ramdisk/package/subpackage/__init__.py'
247+
removed: 'ramdisk/package/subpackage/y.py'
248+
removed directory: 'ramdisk/package/subpackage'
249+
removed: 'ramdisk/package/__init__.py'
250+
removed: 'ramdisk/package/x.py'
251+
removed directory: 'ramdisk/package'
252+
skipped: 'ramdisk' (vfs mountpoint)
253+
ls :/ramdisk
254+
-----
255+
touch :a.py
256+
touch :b.py
257+
cp ${TMP}/package :
258+
rm :/ramdisk
259+
removed: '/ramdisk/a.py'
260+
removed: '/ramdisk/b.py'
261+
removed: '/ramdisk/package/subpackage/__init__.py'
262+
removed: '/ramdisk/package/subpackage/y.py'
263+
removed directory: '/ramdisk/package/subpackage'
264+
removed: '/ramdisk/package/__init__.py'
265+
removed: '/ramdisk/package/x.py'
266+
removed directory: '/ramdisk/package'
267+
skipped: '/ramdisk' (vfs mountpoint)
268+
ls :/ramdisk
269+
-----

0 commit comments

Comments
 (0)