mirror of https://github.com/ARMmbed/mbed-os.git
usb_device-msd test: disable host side unmount on windows machines
parent
f6d6863c1f
commit
4378c141df
|
@ -127,7 +127,17 @@ class PyusbMSDTest(BaseHostTest):
|
||||||
else:
|
else:
|
||||||
self.report_error("unmount")
|
self.report_error("unmount")
|
||||||
|
|
||||||
|
def _callback_os_type(self, key, value, timestamp):
|
||||||
|
system_name = platform.system()
|
||||||
|
if system_name == "Windows":
|
||||||
|
self.send_kv("os_type", 1)
|
||||||
|
elif system_name == "Linux":
|
||||||
|
self.send_kv("os_type", 2)
|
||||||
|
elif system_name == "Darwin":
|
||||||
|
self.send_kv("os_type", 3)
|
||||||
|
|
||||||
def setup(self):
|
def setup(self):
|
||||||
|
self.register_callback("get_os_type", self._callback_os_type)
|
||||||
self.register_callback("get_serial_number", self._callback_device_ready)
|
self.register_callback("get_serial_number", self._callback_device_ready)
|
||||||
self.register_callback('check_if_mounted', self._callback_check_if_mounted)
|
self.register_callback('check_if_mounted', self._callback_check_if_mounted)
|
||||||
self.register_callback('check_if_not_mounted', self._callback_check_if_not_mounted)
|
self.register_callback('check_if_not_mounted', self._callback_check_if_not_mounted)
|
||||||
|
|
|
@ -33,6 +33,17 @@
|
||||||
#error [NOT_SUPPORTED] USB Device not supported for this target
|
#error [NOT_SUPPORTED] USB Device not supported for this target
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define OS_WINDOWS 1
|
||||||
|
#define OS_LINUX 2
|
||||||
|
#define OS_MAC 3
|
||||||
|
|
||||||
|
// Host side unmount was disabled for windows machines.
|
||||||
|
// PowerShell execution policies/restrictions cause that
|
||||||
|
// on some windows machines unmount is failing
|
||||||
|
// To re-enable it comment out below line.
|
||||||
|
#define DISABLE_HOST_SIDE_UMOUNT
|
||||||
|
|
||||||
#ifdef MIN
|
#ifdef MIN
|
||||||
#undef MIN
|
#undef MIN
|
||||||
#endif
|
#endif
|
||||||
|
@ -313,19 +324,30 @@ void mount_unmount_test(BlockDevice *bd, FileSystem *fs)
|
||||||
uint64_t ret_size = atoll(_key);
|
uint64_t ret_size = atoll(_key);
|
||||||
TEST_ASSERT_EQUAL_UINT64(get_fs_mount_size(fs), ret_size);
|
TEST_ASSERT_EQUAL_UINT64(get_fs_mount_size(fs), ret_size);
|
||||||
|
|
||||||
// unmount msd device on host side
|
#ifdef DISABLE_HOST_SIDE_UMOUNT
|
||||||
greentea_send_kv("unmount", 0);
|
greentea_send_kv("get_os_type", 0);
|
||||||
greentea_parse_kv(_key, _value, sizeof(_key), sizeof(_value));
|
greentea_parse_kv(_key, _value, sizeof(_key), sizeof(_value));
|
||||||
TEST_ASSERT_EQUAL_STRING_LOOP("passed", _key, i);
|
int32_t os_type = atoi(_key);
|
||||||
|
if (os_type != OS_WINDOWS) {
|
||||||
|
#endif
|
||||||
|
// unmount msd device on host side
|
||||||
|
greentea_send_kv("unmount", 0);
|
||||||
|
greentea_parse_kv(_key, _value, sizeof(_key), sizeof(_value));
|
||||||
|
TEST_ASSERT_EQUAL_STRING_LOOP("passed", _key, i);
|
||||||
|
|
||||||
// wait for unmount event (set 10s timeout)
|
// wait for unmount event (set 10s timeout)
|
||||||
media_remove_event.wait(10000);
|
media_remove_event.wait(10000);
|
||||||
if (!usb.media_removed()) {
|
if (!usb.media_removed()) {
|
||||||
TEST_ASSERT_EQUAL_LOOP(true, usb.media_removed(), i);
|
TEST_ASSERT_EQUAL_LOOP(true, usb.media_removed(), i);
|
||||||
|
}
|
||||||
|
#ifdef DISABLE_HOST_SIDE_UMOUNT
|
||||||
|
// unmount since media_removed doesn't disconnects device side
|
||||||
|
usb.disconnect();
|
||||||
}
|
}
|
||||||
// unmount since media_removed doesn't disconnects device side
|
#else
|
||||||
|
// unmount
|
||||||
usb.disconnect();
|
usb.disconnect();
|
||||||
|
#endif
|
||||||
// check if device is detached on host side
|
// check if device is detached on host side
|
||||||
greentea_send_kv("check_if_not_mounted", 0);
|
greentea_send_kv("check_if_not_mounted", 0);
|
||||||
greentea_parse_kv(_key, _value, sizeof(_key), sizeof(_value));
|
greentea_parse_kv(_key, _value, sizeof(_key), sizeof(_value));
|
||||||
|
|
Loading…
Reference in New Issue