summaryrefslogtreecommitdiff
path: root/test-cli/test/tests/qusb.py
diff options
context:
space:
mode:
Diffstat (limited to 'test-cli/test/tests/qusb.py')
-rw-r--r--test-cli/test/tests/qusb.py64
1 files changed, 36 insertions, 28 deletions
diff --git a/test-cli/test/tests/qusb.py b/test-cli/test/tests/qusb.py
index 9b0cad3..df1248d 100644
--- a/test-cli/test/tests/qusb.py
+++ b/test-cli/test/tests/qusb.py
@@ -1,9 +1,6 @@
import sh
import unittest
-import re
-import os
from test.helpers.usb import USBDevices
-from test.helpers.changedir import changedir
class Qusb(unittest.TestCase):
@@ -14,6 +11,10 @@ class Qusb(unittest.TestCase):
self.params = varlist
super(Qusb, self).__init__(testfunc)
self._testMethodDoc = testname
+ if "repetitions" in varlist:
+ self.__repetitions = varlist["repetitions"]
+ else:
+ raise Exception('repetitions param inside Qusb must be defined')
self.__resultlist = []
def execute(self):
@@ -23,43 +24,50 @@ class Qusb(unittest.TestCase):
device = dev_obj.getMassStorage()['disk'] + "1"
else:
self.fail("failed: No USB memory found.")
-
- # create a new folder where the pendrive is going to be mounted
- sh.mkdir("-p", "/mnt/pendrive")
# check if the device is mounted, and umount it
try:
p = sh.findmnt("-n", device)
if p.exit_code == 0:
sh.umount(device)
- except sh.ErrorReturnCode_1:
+ except sh.ErrorReturnCode as e:
# error = 1 means "no found"
pass
# mount the device
+ sh.mkdir("-p", "/mnt/pendrive")
p = sh.mount(device, "/mnt/pendrive")
- if p.exit_code == 0:
+ if p.exit_code != 0:
+ self.fail("failed: Unable to mount the USB memory device.")
+ # execute test
+ for i in range(self.__repetitions):
# copy files
- test_abspath = os.path.dirname(os.path.abspath(__file__)) + "/../"
- p = sh.cp(os.path.join(test_abspath, "files/usbtest/usbdatatest.bin"),
- os.path.join(test_abspath, "files/usbtest/usbdatatest.md5"),
- "/mnt/pendrive")
- if p.exit_code == 0:
- # check
- with changedir("/mnt/pendrive/"):
- p = sh.md5sum("-c", "usbdatatest.md5")
- q = re.search("OK", p.stdout.decode('ascii'))
- # delete files
- sh.rm("-f", "/mnt/pendrive/usbdatatest.bin", "/mnt/pendrive/usbdatatest.md5")
- # umount
- sh.umount("/mnt/pendrive")
- # check result
- if q is None:
- self.fail("failed: Wrong md5 result.")
- else:
- # umount
+ try:
+ p = sh.cp("/var/lib/hwtest-files/usbdatatest.bin",
+ "/var/lib/hwtest-files/usbdatatest.bin.md5",
+ "/mnt/pendrive")
+ except sh.ErrorReturnCode as e:
sh.umount("/mnt/pendrive")
+ sh.rmdir("/mnt/pendrive")
self.fail("failed: Unable to copy files to the USB memory device.")
- else:
- self.fail("failed: Unable to mount the USB memory device.")
+ # check MD5
+ try:
+ p = sh.md5sum("/mnt/pendrive/usbdatatest.bin")
+ except sh.ErrorReturnCode as e:
+ sh.umount("/mnt/pendrive")
+ sh.rmdir("/mnt/pendrive")
+ self.fail("failed: Unable to calculate MD5 of the copied file.")
+ newmd5 = p.stdout.decode().split(" ")[0]
+ with open('/mnt/pendrive/usbdatatest.bin.md5', 'r') as outfile:
+ oldmd5 = outfile.read()
+ outfile.close()
+ if newmd5 != oldmd5:
+ sh.umount("/mnt/pendrive")
+ sh.rmdir("/mnt/pendrive")
+ self.fail("failed: MD5 check failed.")
+ # delete copied files
+ sh.rm("-f", "/mnt/pendrive/usbdatatest.bin", "/mnt/pendrive/usbdatatest.bin.md5")
+ # Finish
+ sh.umount("/mnt/pendrive")
+ sh.rmdir("/mnt/pendrive")
def getresults(self):
return self.__resultlist