diff --git a/interfaces/kits/js/src/common/fs_filefiter.h b/interfaces/kits/js/src/common/fs_filefiter.h deleted file mode 100644 index f16c178213255dd738a7c62d64419e0d7adf6271..0000000000000000000000000000000000000000 --- a/interfaces/kits/js/src/common/fs_filefiter.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (C) 2025 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#ifndef FS_FILE_FILTER_H -#define FS_FILE_FILTER_H - -#include -#include -#include - -namespace OHOS { -namespace FileManagement { -namespace ModuleFileIO { - -class FsFileFilter { -public: - FsFileFilter() = default; - ~FsFileFilter() = default; - - FsFileFilter(const FsFileFilter &filter) = default; - FsFileFilter &operator=(const FsFileFilter &filter) = default; - - void SetSuffix(const std::optional> &suffix) - { - suffix_ = std::move(suffix); - } - - const std::optional> &GetSuffix() const - { - return suffix_; - } - - void SetDisplayName(const std::optional> &displayName) - { - displayName_ = std::move(displayName); - } - - const std::optional> &GetDisplayName() const - { - return displayName_; - } - - void SetMimeType(const std::optional> &mimeType) - { - mimeType_ = std::move(mimeType); - } - - const std::optional> &GetMimeType() const - { - return mimeType_; - } - - void SetFileSizeOver(const std::optional &fileSizeOver) - { - fileSizeOver_ = std::move(fileSizeOver); - } - - const std::optional &GetFileSizeOver() const - { - return fileSizeOver_; - } - - void SetLastModifiedAfter(const std::optional &lastModifiedAfter) - { - lastModifiedAfter_ = std::move(lastModifiedAfter); - } - - const std::optional &GetLastModifiedAfter() const - { - return lastModifiedAfter_; - } - - void SetExcludeMedia(const bool &excludeMedia) - { - excludeMedia_ = excludeMedia; - } - - bool GetExcludeMedia() const - { - return excludeMedia_; - } - - void SetHasFilter(const bool &hasFilter) - { - hasFilter_ = hasFilter; - } - - bool GetHasFilter() const - { - return hasFilter_; - } - -private: - std::optional> suffix_ = std::nullopt; - std::optional> displayName_ = std::nullopt; - std::optional> mimeType_ = std::nullopt; - std::optional fileSizeOver_ = std::nullopt; - std::optional lastModifiedAfter_ = std::nullopt; - bool excludeMedia_ = false; - bool hasFilter_ = false; -}; - -} // namespace ModuleFileIO -} // namespace FileManagement -} // namespace OHOS -#endif // FS_FILE_FILTER_H \ No newline at end of file diff --git a/interfaces/kits/js/src/mod_fs/class_tasksignal/ani/task_signal_listener_ani.cpp b/interfaces/kits/js/src/mod_fs/class_tasksignal/ani/task_signal_listener_ani.cpp index bc410820f64d62c0ea7a7ac80003a5c3c4f1272e..6892bf05c77c9fe51ce6ff7fc0948b7dd3033a04 100644 --- a/interfaces/kits/js/src/mod_fs/class_tasksignal/ani/task_signal_listener_ani.cpp +++ b/interfaces/kits/js/src/mod_fs/class_tasksignal/ani/task_signal_listener_ani.cpp @@ -32,6 +32,9 @@ bool TaskSignalListenerAni::CreateGlobalReference() return true; } ani_env *env = AniHelper::GetThreadEnv(vm); + if (env == nullptr) { + return false; + } int ret = 0; if ((ret = env->GlobalReference_Create(static_cast(signalObj), &signalRef)) != ANI_OK) { HILOGE("TaskSignalListenerAni GlobalReference_Create failed: %{public}d", ret); @@ -84,6 +87,10 @@ TaskSignalListenerAni::~TaskSignalListenerAni() return; } ani_env *env = AniHelper::GetThreadEnv(vm); + if (env == nullptr) { + HILOGE("~TaskSignalListenerAni env is nullptr"); + return; + } int ret = 0; if ((ret = env->GlobalReference_Delete(signalRef)) != ANI_OK) { HILOGE("TaskSignalListenerAni GlobalReference_Delete: %{public}d", ret); diff --git a/interfaces/kits/js/src/mod_fs/properties/ani/copy_dir_ani.cpp b/interfaces/kits/js/src/mod_fs/properties/ani/copy_dir_ani.cpp index ae59411014fc32a4910040b9e6aa1ee79f2adf25..5a6bc0187c2bfb5b85e793f8673c3ebaa1114605 100644 --- a/interfaces/kits/js/src/mod_fs/properties/ani/copy_dir_ani.cpp +++ b/interfaces/kits/js/src/mod_fs/properties/ani/copy_dir_ani.cpp @@ -56,7 +56,7 @@ static tuple ToConflictFiles(ani_env *env, const ConflictFiles } auto [succDest, dest] = TypeConverter::ToAniString(env, files.destFiles); - if (!succSrc) { + if (!succDest) { HILOGE("Convert ConflictFiles destFiles to ani string failed!"); return { false, nullptr }; } diff --git a/interfaces/kits/js/src/mod_fs/properties/ani/mkdtemp_ani.cpp b/interfaces/kits/js/src/mod_fs/properties/ani/mkdtemp_ani.cpp index 42b5a73167eca8dcf6782f61016dea3d1ee24f26..915f0574dddb241714011bf784e5fa7474bf3402 100644 --- a/interfaces/kits/js/src/mod_fs/properties/ani/mkdtemp_ani.cpp +++ b/interfaces/kits/js/src/mod_fs/properties/ani/mkdtemp_ani.cpp @@ -38,7 +38,7 @@ ani_string MkdtempAni::MkdtempSync(ani_env *env, [[maybe_unused]] ani_class claz auto ret = MkdtempCore::DoMkdtemp(prefixPath); if (!ret.IsSuccess()) { - HILOGE("Mkdtemp faild"); + HILOGE("Mkdtemp failed"); const auto &err = ret.GetError(); ErrorHandler::Throw(env, err); return nullptr; diff --git a/interfaces/kits/js/src/mod_fs/properties/ani/movedir_ani.cpp b/interfaces/kits/js/src/mod_fs/properties/ani/movedir_ani.cpp index e571ae53aeec1fc58b00de8fd16eec429fc7af89..b832a5a4909c0f7eae8a9a81785f5ef6ae752d62 100644 --- a/interfaces/kits/js/src/mod_fs/properties/ani/movedir_ani.cpp +++ b/interfaces/kits/js/src/mod_fs/properties/ani/movedir_ani.cpp @@ -54,7 +54,7 @@ static tuple ToConflictFiles(ani_env *env, const ErrFiles &fil } auto [succDest, dest] = TypeConverter::ToAniString(env, files.destFiles); - if (!succSrc) { + if (!succDest) { HILOGE("Convert ConflictFiles destFiles to ani string failed!"); return { false, nullptr }; } diff --git a/interfaces/kits/js/src/mod_fs/properties/create_randomaccessfile_core.cpp b/interfaces/kits/js/src/mod_fs/properties/create_randomaccessfile_core.cpp index e4a1969f3e493328008e81f49cd5fafe169c3a13..d03004b21a44fb87a0f6dbb9e19ee27ea5aea9f1 100644 --- a/interfaces/kits/js/src/mod_fs/properties/create_randomaccessfile_core.cpp +++ b/interfaces/kits/js/src/mod_fs/properties/create_randomaccessfile_core.cpp @@ -34,7 +34,6 @@ static tuple ParseStringToFileInfo(const string &path) auto fdg = CreateUniquePtr(sfd, false); if (fdg == nullptr) { HILOGE("Failed to request heap memory."); - close(sfd); return { false, FileInfo { false, nullptr, nullptr }, ENOMEM}; } size_t length = path.length() + 1; diff --git a/interfaces/kits/js/src/mod_fs/properties/dup_core.cpp b/interfaces/kits/js/src/mod_fs/properties/dup_core.cpp index b70fac876f30d86f08c36aaffbe3d81d628c481f..b4e5b0cbd1cc245ce0bd2c9391aa530d2a59e271 100644 --- a/interfaces/kits/js/src/mod_fs/properties/dup_core.cpp +++ b/interfaces/kits/js/src/mod_fs/properties/dup_core.cpp @@ -58,7 +58,7 @@ FsResult DupCore::DoDup(const int32_t &fd) } string path = "/proc/self/fd/" + to_string(dstFd); int ret = uv_fs_readlink(nullptr, readLinkReq.get(), path.c_str(), nullptr); - if (ret < 0) { + if (ret < 0 || readLinkReq->ptr == nullptr) { HILOGE("Failed to readlink fd, ret: %{public}d", ret); close(dstFd); return FsResult::Error(ret); diff --git a/interfaces/test/unittest/js/BUILD.gn b/interfaces/test/unittest/js/BUILD.gn index af69f199636ad31a32926f03f38f7fbef8838d1c..f0326f9b29f813ff9e919c01171dfd0729bb20a2 100644 --- a/interfaces/test/unittest/js/BUILD.gn +++ b/interfaces/test/unittest/js/BUILD.gn @@ -131,6 +131,8 @@ ohos_unittest("ani_file_fs_test") { ] defines = [ "private=public" ] + + use_exceptions = true } ohos_unittest("ani_file_fs_mock_test") { @@ -189,9 +191,11 @@ ohos_unittest("ani_file_fs_mock_test") { "mod_fs/properties/stat_core_mock_test.cpp", "mod_fs/properties/symlink_core_mock_test.cpp", "mod_fs/properties/trans_listener_mock_test.cpp", + "mod_fs/properties/truncate_core_mock_test.cpp", "mod_fs/properties/unlink_core_mock_test.cpp", "mod_fs/properties/utimes_core_mock_test.cpp", "mod_fs/properties/watcher_core_mock_test.cpp", + "mod_fs/properties/write_core_mock_test.cpp", "mod_fs/properties/xattr_core_mock_test.cpp", ] @@ -223,6 +227,8 @@ ohos_unittest("ani_file_fs_mock_test") { "ENABLE_DISTRIBUTED_FILE_MOCK", "private=public", ] + + use_exceptions = true } ohos_unittest("ani_file_hash_test") { @@ -250,6 +256,8 @@ ohos_unittest("ani_file_hash_test") { "hilog:libhilog", "libuv:uv", ] + + use_exceptions = true } ohos_unittest("ani_file_securitylabel_test") { @@ -277,6 +285,8 @@ ohos_unittest("ani_file_securitylabel_test") { "hilog:libhilog", "libuv:uv", ] + + use_exceptions = true } ohos_unittest("ani_file_statvfs_test") { @@ -304,6 +314,8 @@ ohos_unittest("ani_file_statvfs_test") { "hilog:libhilog", "libuv:uv", ] + + use_exceptions = true } ohos_unittest("napi_file_fs_test") {