Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Kernel Liteos A
提交
bbdb977b
K
Kernel Liteos A
项目概览
OpenHarmony
/
Kernel Liteos A
大约 2 年 前同步成功
通知
475
Star
414
Fork
55
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
4
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel Liteos A
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
4
Issue
4
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
bbdb977b
编写于
8月 12, 2021
作者:
O
openharmony_ci
提交者:
Gitee
8月 12, 2021
浏览文件
操作
浏览文件
下载
差异文件
!539 fix fchmod
Merge pull request !539 from wcc/fchmod0
上级
87c2d4f7
2f214bf4
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
180 addition
and
15 deletion
+180
-15
syscall/fs_syscall.c
syscall/fs_syscall.c
+28
-0
syscall/los_syscall.h
syscall/los_syscall.h
+1
-0
syscall/syscall_lookup.h
syscall/syscall_lookup.h
+1
-0
testsuites/unittest/fs/BUILD.gn
testsuites/unittest/fs/BUILD.gn
+2
-0
testsuites/unittest/fs/jffs/It_vfs_jffs.h
testsuites/unittest/fs/jffs/It_vfs_jffs.h
+2
-0
testsuites/unittest/fs/jffs/full/it_test_fs_jffs_102.cpp
testsuites/unittest/fs/jffs/full/it_test_fs_jffs_102.cpp
+75
-3
testsuites/unittest/fs/jffs/full/it_test_fs_jffs_103.cpp
testsuites/unittest/fs/jffs/full/it_test_fs_jffs_103.cpp
+50
-12
testsuites/unittest/fs/jffs/vfs_jffs_test.cpp
testsuites/unittest/fs/jffs/vfs_jffs_test.cpp
+21
-0
未找到文件。
syscall/fs_syscall.c
浏览文件 @
bbdb977b
...
@@ -2249,6 +2249,34 @@ OUT:
...
@@ -2249,6 +2249,34 @@ OUT:
return
ret
;
return
ret
;
}
}
int
SysFchmod
(
int
fd
,
mode_t
mode
)
{
int
ret
;
int
sysFd
;
struct
IATTR
attr
=
{
.
attr_chg_mode
=
mode
,
.
attr_chg_valid
=
CHG_MODE
,
/* change mode */
};
struct
file
*
file
=
NULL
;
sysFd
=
GetAssociatedSystemFd
(
fd
);
if
(
sysFd
<
0
)
{
return
-
EBADF
;
}
ret
=
fs_getfilep
(
sysFd
,
&
file
);
if
(
ret
<
0
)
{
return
-
get_errno
();
}
ret
=
chattr
(
file
->
f_path
,
&
attr
);
if
(
ret
<
0
)
{
return
-
get_errno
();
}
return
ret
;
}
int
SysFchownat
(
int
fd
,
const
char
*
path
,
uid_t
owner
,
gid_t
group
,
int
flag
)
int
SysFchownat
(
int
fd
,
const
char
*
path
,
uid_t
owner
,
gid_t
group
,
int
flag
)
{
{
int
ret
;
int
ret
;
...
...
syscall/los_syscall.h
浏览文件 @
bbdb977b
...
@@ -234,6 +234,7 @@ extern int SysExecve(const char *fileName, char *const *argv, char *const *envp)
...
@@ -234,6 +234,7 @@ extern int SysExecve(const char *fileName, char *const *argv, char *const *envp)
extern
int
SysChdir
(
const
char
*
path
);
extern
int
SysChdir
(
const
char
*
path
);
extern
int
SysUtimensat
(
int
fd
,
const
char
*
path
,
struct
timespec
times
[
2
],
int
flag
);
extern
int
SysUtimensat
(
int
fd
,
const
char
*
path
,
struct
timespec
times
[
2
],
int
flag
);
extern
int
SysFchmodat
(
int
fd
,
const
char
*
path
,
mode_t
mode
,
int
flag
);
extern
int
SysFchmodat
(
int
fd
,
const
char
*
path
,
mode_t
mode
,
int
flag
);
extern
int
SysFchmod
(
int
fd
,
mode_t
mode
);
extern
int
SysChmod
(
const
char
*
path
,
mode_t
mode
);
extern
int
SysChmod
(
const
char
*
path
,
mode_t
mode
);
extern
int
SysFchownat
(
int
fd
,
const
char
*
path
,
uid_t
owner
,
gid_t
group
,
int
flag
);
extern
int
SysFchownat
(
int
fd
,
const
char
*
path
,
uid_t
owner
,
gid_t
group
,
int
flag
);
extern
int
SysFchown
(
int
fd
,
uid_t
owner
,
gid_t
group
);
extern
int
SysFchown
(
int
fd
,
uid_t
owner
,
gid_t
group
);
...
...
syscall/syscall_lookup.h
浏览文件 @
bbdb977b
...
@@ -50,6 +50,7 @@ SYSCALL_HAND_DEF(__NR_sysinfo, SysInfo, int, ARG_NUM_1)
...
@@ -50,6 +50,7 @@ SYSCALL_HAND_DEF(__NR_sysinfo, SysInfo, int, ARG_NUM_1)
SYSCALL_HAND_DEF
(
__NR_chdir
,
SysChdir
,
int
,
ARG_NUM_1
)
SYSCALL_HAND_DEF
(
__NR_chdir
,
SysChdir
,
int
,
ARG_NUM_1
)
SYSCALL_HAND_DEF
(
__NR_utimensat
,
SysUtimensat
,
int
,
ARG_NUM_4
)
SYSCALL_HAND_DEF
(
__NR_utimensat
,
SysUtimensat
,
int
,
ARG_NUM_4
)
SYSCALL_HAND_DEF
(
__NR_fchmodat
,
SysFchmodat
,
int
,
ARG_NUM_4
)
SYSCALL_HAND_DEF
(
__NR_fchmodat
,
SysFchmodat
,
int
,
ARG_NUM_4
)
SYSCALL_HAND_DEF
(
__NR_fchmod
,
SysFchmod
,
int
,
ARG_NUM_2
)
SYSCALL_HAND_DEF
(
__NR_utimensat
,
SysUtimensat
,
int
,
ARG_NUM_4
)
SYSCALL_HAND_DEF
(
__NR_utimensat
,
SysUtimensat
,
int
,
ARG_NUM_4
)
SYSCALL_HAND_DEF
(
__NR_chmod
,
SysChmod
,
int
,
ARG_NUM_2
)
SYSCALL_HAND_DEF
(
__NR_chmod
,
SysChmod
,
int
,
ARG_NUM_2
)
SYSCALL_HAND_DEF
(
__NR_lseek
,
SysLseek
,
off_t
,
ARG_NUM_7
)
/* current only support 32bit max 4G file */
SYSCALL_HAND_DEF
(
__NR_lseek
,
SysLseek
,
off_t
,
ARG_NUM_7
)
/* current only support 32bit max 4G file */
...
...
testsuites/unittest/fs/BUILD.gn
浏览文件 @
bbdb977b
...
@@ -211,6 +211,8 @@ sources_full = [
...
@@ -211,6 +211,8 @@ sources_full = [
"jffs/full/it_test_fs_jffs_002.cpp",
"jffs/full/it_test_fs_jffs_002.cpp",
"jffs/full/it_test_fs_jffs_003.cpp",
"jffs/full/it_test_fs_jffs_003.cpp",
"jffs/full/it_test_fs_jffs_004.cpp",
"jffs/full/it_test_fs_jffs_004.cpp",
"jffs/full/it_test_fs_jffs_102.cpp",
"jffs/full/it_test_fs_jffs_103.cpp",
"jffs/full/It_jffs_001.cpp",
"jffs/full/It_jffs_001.cpp",
"jffs/full/It_jffs_002.cpp",
"jffs/full/It_jffs_002.cpp",
"jffs/full/It_jffs_003.cpp",
"jffs/full/It_jffs_003.cpp",
...
...
testsuites/unittest/fs/jffs/It_vfs_jffs.h
浏览文件 @
bbdb977b
...
@@ -271,6 +271,8 @@ void ItTestFsJffs001(void);
...
@@ -271,6 +271,8 @@ void ItTestFsJffs001(void);
void
ItTestFsJffs002
(
void
);
void
ItTestFsJffs002
(
void
);
void
ItTestFsJffs003
(
void
);
void
ItTestFsJffs003
(
void
);
void
ItTestFsJffs004
(
void
);
void
ItTestFsJffs004
(
void
);
void
ItTestFsJffs102
(
void
);
void
ItTestFsJffs103
(
void
);
VOID
ItJffs001
(
VOID
);
VOID
ItJffs001
(
VOID
);
VOID
ItJffs002
(
VOID
);
VOID
ItJffs002
(
VOID
);
VOID
ItJffs003
(
VOID
);
VOID
ItJffs003
(
VOID
);
...
...
testsuites/unittest/fs/jffs/
smoke
/it_test_fs_jffs_102.cpp
→
testsuites/unittest/fs/jffs/
full
/it_test_fs_jffs_102.cpp
浏览文件 @
bbdb977b
...
@@ -28,7 +28,7 @@
...
@@ -28,7 +28,7 @@
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
*/
#include "It_fs_jffs.h"
#include "It_
v
fs_jffs.h"
#define TEST_STRLEN 30
#define TEST_STRLEN 30
...
@@ -37,13 +37,85 @@ static int TestCase(void)
...
@@ -37,13 +37,85 @@ static int TestCase(void)
INT32
fd
=
0
;
INT32
fd
=
0
;
INT32
ret
=
JFFS_IS_ERROR
;
INT32
ret
=
JFFS_IS_ERROR
;
CHAR
pathname1
[
TEST_STRLEN
]
=
JFFS_PATH_NAME0
;
CHAR
pathname1
[
TEST_STRLEN
]
=
JFFS_PATH_NAME0
;
struct
stat
info
=
{
0
};
fd
=
open
(
pathname1
,
O_NONBLOCK
|
O_CREAT
|
O_EXCL
,
0777
);
fd
=
open
(
pathname1
,
O_NONBLOCK
|
O_CREAT
|
O_
RDWR
|
O_
EXCL
,
0777
);
ICUNIT_GOTO_NOT_EQUAL
(
fd
,
-
1
,
fd
,
EXIT1
);
ICUNIT_GOTO_NOT_EQUAL
(
fd
,
-
1
,
fd
,
EXIT1
);
ret
=
fchmod
(
fd
,
S_IREAD
);
/* EBADF */
ret
=
fchmod
(
-
1
,
S_IREAD
);
ret
=
errno
;
ICUNIT_GOTO_EQUAL
(
ret
,
EBADF
,
ret
,
EXIT1
);
/* S_IRWXU */
ret
=
fchmod
(
fd
,
S_IRWXU
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT1
);
stat
(
pathname1
,
&
info
);
ret
=
info
.
st_mode
&
S_IRWXU
;
ICUNIT_GOTO_NOT_EQUAL
(
ret
,
0
,
ret
,
EXIT
);
/* S_IRUSR */
ret
=
fchmod
(
fd
,
S_IRUSR
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT1
);
stat
(
pathname1
,
&
info
);
ret
=
info
.
st_mode
&
S_IRUSR
;
ICUNIT_GOTO_NOT_EQUAL
(
ret
,
0
,
ret
,
EXIT
);
/* S_IWUSR */
ret
=
fchmod
(
fd
,
S_IWUSR
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT1
);
stat
(
pathname1
,
&
info
);
ret
=
info
.
st_mode
&
S_IWUSR
;
ICUNIT_GOTO_NOT_EQUAL
(
ret
,
0
,
ret
,
EXIT
);
/* S_IXUSR */
ret
=
fchmod
(
fd
,
S_IXUSR
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT1
);
stat
(
pathname1
,
&
info
);
ret
=
info
.
st_mode
&
S_IXUSR
;
ICUNIT_GOTO_NOT_EQUAL
(
ret
,
0
,
ret
,
EXIT
);
/* S_IRWXG */
ret
=
fchmod
(
fd
,
S_IRWXG
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT1
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT1
);
stat
(
pathname1
,
&
info
);
ret
=
info
.
st_mode
&
S_IRWXG
;
ICUNIT_GOTO_NOT_EQUAL
(
ret
,
0
,
ret
,
EXIT
);
/* SIRGRP */
ret
=
fchmod
(
fd
,
S_IRGRP
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT1
);
stat
(
pathname1
,
&
info
);
ret
=
info
.
st_mode
&
S_IRGRP
;
ICUNIT_GOTO_NOT_EQUAL
(
ret
,
0
,
ret
,
EXIT
);
/* S_IXGRP */
ret
=
fchmod
(
fd
,
S_IXGRP
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT1
);
stat
(
pathname1
,
&
info
);
ret
=
info
.
st_mode
&
S_IXGRP
;
ICUNIT_GOTO_NOT_EQUAL
(
ret
,
0
,
ret
,
EXIT
);
/* S_IRWXO */
ret
=
fchmod
(
fd
,
S_IRWXO
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT1
);
stat
(
pathname1
,
&
info
);
ret
=
info
.
st_mode
&
S_IRWXO
;
ICUNIT_GOTO_NOT_EQUAL
(
ret
,
0
,
ret
,
EXIT
);
/* S_IROTH */
ret
=
fchmod
(
fd
,
S_IROTH
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT1
);
stat
(
pathname1
,
&
info
);
ret
=
info
.
st_mode
&
S_IROTH
;
ICUNIT_GOTO_NOT_EQUAL
(
ret
,
0
,
ret
,
EXIT
);
/* S_IXOTH */
ret
=
fchmod
(
fd
,
S_IXOTH
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT1
);
stat
(
pathname1
,
&
info
);
ret
=
info
.
st_mode
&
S_IXOTH
;
ICUNIT_GOTO_NOT_EQUAL
(
ret
,
0
,
ret
,
EXIT
);
ret
=
close
(
fd
);
ret
=
close
(
fd
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT1
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT1
);
...
...
testsuites/unittest/fs/jffs/
smoke
/it_test_fs_jffs_103.cpp
→
testsuites/unittest/fs/jffs/
full
/it_test_fs_jffs_103.cpp
浏览文件 @
bbdb977b
...
@@ -28,8 +28,7 @@
...
@@ -28,8 +28,7 @@
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
*/
#include "It_vfs_jffs.h"
#include "It_fs_jffs.h"
#define TEST_STRLEN 30
#define TEST_STRLEN 30
...
@@ -41,6 +40,8 @@ static int TestCase(void)
...
@@ -41,6 +40,8 @@ static int TestCase(void)
CHAR
pathname0
[
TEST_STRLEN
]
=
JFFS_PATH_NAME0
;
CHAR
pathname0
[
TEST_STRLEN
]
=
JFFS_PATH_NAME0
;
CHAR
pathname1
[
TEST_STRLEN
]
=
JFFS_PATH_NAME0
;
CHAR
pathname1
[
TEST_STRLEN
]
=
JFFS_PATH_NAME0
;
CHAR
pathname2
[
TEST_STRLEN
]
=
JFFS_PATH_NAME0
;
CHAR
pathname2
[
TEST_STRLEN
]
=
JFFS_PATH_NAME0
;
CHAR
pathname3
[
TEST_STRLEN
]
=
JFFS_PATH_NAME01
;
CHAR
filebuf
[
256
]
=
"abcdeab89abcedcde01234567fghij9876543210abcdeabc89abcedfghde0123456710abcdeabcde012876543289abcedfghij987654345673210abcdeabcde0123456789abcedfghij9876543210abcdeabcde0123456789abcedfg10abcdeahij9876543289abcedfghlbcde01234567I0lalalalalalalal"
;
struct
stat
info
=
{
0
};
struct
stat
info
=
{
0
};
ret
=
mkdir
(
pathname0
,
0777
);
ret
=
mkdir
(
pathname0
,
0777
);
...
@@ -60,16 +61,54 @@ static int TestCase(void)
...
@@ -60,16 +61,54 @@ static int TestCase(void)
dirfd
=
open
(
pathname0
,
O_DIRECTORY
);
dirfd
=
open
(
pathname0
,
O_DIRECTORY
);
ICUNIT_GOTO_NOT_EQUAL
(
dirfd
,
JFFS_IS_ERROR
,
dirfd
,
EXIT
);
ICUNIT_GOTO_NOT_EQUAL
(
dirfd
,
JFFS_IS_ERROR
,
dirfd
,
EXIT
);
ret
=
fchmodat
(
fd
,
"test1"
,
S_IREAD
,
0
);
/* ENAMETOOLONG */
ret
=
fchmodat
(
dirfd
,
filebuf
,
S_IREAD
,
0
);
ret
=
errno
;
ICUNIT_GOTO_EQUAL
(
ret
,
ENAMETOOLONG
,
ret
,
EXIT
);
/* ENOENT */
ret
=
fchmodat
(
-
1
,
"test1"
,
S_IREAD
,
0
);
ret
=
errno
;
ICUNIT_GOTO_EQUAL
(
ret
,
ENOENT
,
ret
,
EXIT
);
/* EINVAL */
ret
=
fchmodat
(
dirfd
,
NULL
,
S_IREAD
,
0
);
ret
=
errno
;
ICUNIT_GOTO_EQUAL
(
ret
,
EINVAL
,
ret
,
EXIT
);
/* absolute path */
ret
=
fchmodat
(
0
,
pathname1
,
S_IRUSR
|
S_IWUSR
|
S_IXUSR
,
0
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT
);
stat
(
pathname1
,
&
info
);
ret
=
info
.
st_mode
&
(
S_IRUSR
|
S_IWUSR
|
S_IXUSR
);
ICUNIT_GOTO_EQUAL
(
ret
,
(
S_IRUSR
|
S_IWUSR
|
S_IXUSR
),
ret
,
EXIT
);
/* S_IRUSR | S_IWUSR | S_IXUSR */
ret
=
fchmodat
(
dirfd
,
"test1"
,
S_IRUSR
|
S_IWUSR
|
S_IXUSR
,
0
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT
);
stat
(
pathname1
,
&
info
);
stat
(
pathname1
,
&
info
);
ret
=
info
.
st_mode
&
S_IREAD
;
ret
=
info
.
st_mode
&
(
S_IRUSR
|
S_IWUSR
|
S_IXUSR
)
;
ICUNIT_GOTO_
NOT_EQUAL
(
ret
,
0
,
ret
,
EXIT
);
ICUNIT_GOTO_
EQUAL
(
ret
,
(
S_IRUSR
|
S_IWUSR
|
S_IXUSR
)
,
ret
,
EXIT
);
/* AT_FDCWD */
ret
=
fchmodat
(
AT_FDCWD
,
"test/test1"
,
S_IRUSR
|
S_IWUSR
|
S_IXUSR
,
0
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT
);
stat
(
pathname1
,
&
info
);
ret
=
info
.
st_mode
&
(
S_IRUSR
|
S_IWUSR
|
S_IXUSR
);
ICUNIT_GOTO_EQUAL
(
ret
,
(
S_IRUSR
|
S_IWUSR
|
S_IXUSR
),
ret
,
EXIT
);
ret
=
close
(
dirfd
);
ret
=
close
(
dirfd
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT
);
/* ENOTDIR */
dirfd
=
open
(
pathname3
,
O_NONBLOCK
|
O_CREAT
|
O_RDWR
|
O_EXCL
,
0777
);
ICUNIT_GOTO_NOT_EQUAL
(
fd
,
JFFS_IS_ERROR
,
fd
,
EXIT
);
ret
=
fchmodat
(
dirfd
,
"test1"
,
S_IROTH
|
S_IWOTH
|
S_IXOTH
,
0
);
ret
=
errno
;
ICUNIT_GOTO_EQUAL
(
ret
,
ENOTDIR
,
ret
,
EXIT
);
ret
=
close
(
dirfd
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT
);
ret
=
remove
(
pathname3
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT
);
ret
=
rmdir
(
pathname1
);
ret
=
rmdir
(
pathname1
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT
);
...
@@ -85,17 +124,15 @@ static int TestCase(void)
...
@@ -85,17 +124,15 @@ static int TestCase(void)
stat
(
pathname2
,
&
info
);
stat
(
pathname2
,
&
info
);
ret
=
info
.
st_mode
&
(
S_IRUSR
|
S_IRGRP
|
S_IROTH
);
ret
=
info
.
st_mode
&
(
S_IRUSR
|
S_IRGRP
|
S_IROTH
);
ICUNIT_GOTO_NOT_EQUAL
(
ret
,
0
,
ret
,
EXIT
);
ICUNIT_GOTO_EQUAL
(
ret
,
(
S_IRUSR
|
S_IRGRP
|
S_IROTH
),
ret
,
EXIT
);
ret
=
close
(
fd
);
ret
=
close
(
fd
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT
);
ret
=
fchmodat
(
dirfd
,
"test.txt"
,
S_IREAD
,
0
);
ret
=
fchmodat
(
dirfd
,
"test.txt"
,
S_IRUSR
|
S_IWUSR
|
S_IXUSR
,
0
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT1
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT
);
stat
(
pathname2
,
&
info
);
stat
(
pathname2
,
&
info
);
ret
=
info
.
st_mode
&
S_IREAD
;
ret
=
info
.
st_mode
&
(
S_IRUSR
|
S_IWUSR
|
S_IXUSR
)
;
ICUNIT_GOTO_
NOT_EQUAL
(
ret
,
0
,
ret
,
EXIT
);
ICUNIT_GOTO_
EQUAL
(
ret
,
(
S_IRUSR
|
S_IWUSR
|
S_IXUSR
)
,
ret
,
EXIT
);
ret
=
close
(
dirfd
);
ret
=
close
(
dirfd
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT
);
ICUNIT_GOTO_EQUAL
(
ret
,
JFFS_NO_ERROR
,
ret
,
EXIT
);
...
@@ -114,6 +151,7 @@ EXIT1:
...
@@ -114,6 +151,7 @@ EXIT1:
close
(
fd
);
close
(
fd
);
}
}
EXIT:
EXIT:
remove
(
pathname3
);
remove
(
pathname2
);
remove
(
pathname2
);
remove
(
pathname1
);
remove
(
pathname1
);
remove
(
pathname0
);
remove
(
pathname0
);
...
...
testsuites/unittest/fs/jffs/vfs_jffs_test.cpp
浏览文件 @
bbdb977b
...
@@ -1043,6 +1043,27 @@ HWTEST_F(VfsJffsTest, ItTestFsJffs004, TestSize.Level0)
...
@@ -1043,6 +1043,27 @@ HWTEST_F(VfsJffsTest, ItTestFsJffs004, TestSize.Level0)
ItTestFsJffs004
();
ItTestFsJffs004
();
}
}
/* *
* @tc.name: ItTestFsJffs102
* @tc.desc: function for VfsJffsTest
* @tc.type: FUNC
* @tc.require: AR000EEMQ9
*/
HWTEST_F
(
VfsJffsTest
,
ItTestFsJffs102
,
TestSize
.
Level0
)
{
ItTestFsJffs102
();
}
/* *
* @tc.name: ItTestFsJffs103
* @tc.desc: function for VfsJffsTest
* @tc.type: FUNC
* @tc.require: AR000EEMQ9
*/
HWTEST_F
(
VfsJffsTest
,
ItTestFsJffs103
,
TestSize
.
Level0
)
{
ItTestFsJffs103
();
}
/* *
/* *
* @tc.name: IT_JFFS_002
* @tc.name: IT_JFFS_002
* @tc.desc: function for VfsJffsTest
* @tc.desc: function for VfsJffsTest
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录