diff --git a/pywasm/wasi.py b/pywasm/wasi.py index 9833388..b8d6053 100644 --- a/pywasm/wasi.py +++ b/pywasm/wasi.py @@ -1,5 +1,6 @@ import dataclasses import os +import platform import pywasm.core import random import select @@ -1259,7 +1260,9 @@ def path_remove_directory(self, m: pywasm.core.Machine, args: typing.List[int]) except NotADirectoryError: return [self.ERRNO_NOTDIR] except OSError as e: - if len(os.listdir(file.host_fd)) != 0: + if platform.system().lower() == 'darwin' and e.errno == 66: + return [self.ERRNO_NOTEMPTY] + if platform.system().lower() == 'linux' and e.errno == 39: return [self.ERRNO_NOTEMPTY] raise e return [self.ERRNO_SUCCESS] @@ -1292,7 +1295,9 @@ def path_rename(self, m: pywasm.core.Machine, args: typing.List[int]) -> typing. except NotADirectoryError: return [self.ERRNO_NOTDIR] except OSError as e: - if len(os.listdir(dest.host_fd)) != 0: + if platform.system().lower() == 'darwin' and e.errno == 66: + return [self.ERRNO_NOTEMPTY] + if platform.system().lower() == 'linux' and e.errno == 39: return [self.ERRNO_NOTEMPTY] raise e return [self.ERRNO_SUCCESS]