test: Don't unmount not (yet) mounted system
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 11 Feb 2021 14:40:12 +0000 (16:40 +0200)
committerTom Rini <trini@konsulko.com>
Wed, 31 Mar 2021 11:50:17 +0000 (07:50 -0400)
commit1ba21bb06b08d2f5d62afac29549ade8616929ce
tree6c965c7a02a554a1b006679d5a08c787cb07f26f
parentdd85c9500cbccbe9d8166053255f3ef4c908f0e1
test: Don't unmount not (yet) mounted system

When test suite tries to create a file for a new filesystem test case and fails,
the clean up of the exception tries to unmount the image, that has not yet been
mounted. When it happens, the fuse_mounted global variable is set to False and
inconveniently the test case tries to use sudo, so without this change the
admin of the machine gets an (annoying) email:

  Subject: *** SECURITY information for example.com ***

  example.com : Feb  5 19:43:47 : ... COMMAND=/bin/umount .../build-sandbox/persistent-data/mnt

and second run of the test cases on uncleaned build folder will ask for sudo
which is not what expected.

Besides that there is a double unmount calls during successfully run test case.

All of these due to over engineered Python try-except clause and people didn't
get it properly at all. The rule of thumb is that don't use more keywords than
try-except in the exception handling code. Nevertheless, here we adjust code
to be less intrusive to the initial logic behind that complex and unclear
constructions in the test case, although it adds a lot of lines of the code,
i.e. splits one exception handler to three, so on each step we know what
cleanup shall perform.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
test/py/tests/test_fs/conftest.py