commit
a3b480b18e
|
@ -502,6 +502,30 @@ int SysExecve(const char *fileName, char *const *argv, char *const *envp)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
int SysFchdir(int fd)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
int sysFd;
|
||||||
|
struct file *file = NULL;
|
||||||
|
|
||||||
|
sysFd = GetAssociatedSystemFd(fd);
|
||||||
|
if (sysFd < 0) {
|
||||||
|
return -EBADF;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = fs_getfilep(sysFd, &file);
|
||||||
|
if (ret < 0) {
|
||||||
|
return -get_errno();
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = chdir(file->f_path);
|
||||||
|
if (ret < 0) {
|
||||||
|
ret = -get_errno();
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
int SysChdir(const char *path)
|
int SysChdir(const char *path)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
|
@ -231,6 +231,7 @@ extern int SysSymlinkat(const char *target, int dirfd, const char *linkpath);
|
||||||
extern ssize_t SysReadlinkat(int dirfd, const char *pathname, char *buf, size_t bufsize);
|
extern ssize_t SysReadlinkat(int dirfd, const char *pathname, char *buf, size_t bufsize);
|
||||||
extern int SysUnlink( const char *pathname);
|
extern int SysUnlink( const char *pathname);
|
||||||
extern int SysExecve(const char *fileName, char *const *argv, char *const *envp);
|
extern int SysExecve(const char *fileName, char *const *argv, char *const *envp);
|
||||||
|
extern int SysFchdir(int fd);
|
||||||
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);
|
||||||
|
|
|
@ -47,6 +47,7 @@ SYSCALL_HAND_DEF(__NR_execve, SysExecve, int, ARG_NUM_3)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
SYSCALL_HAND_DEF(__NR_sysinfo, SysInfo, int, ARG_NUM_1)
|
SYSCALL_HAND_DEF(__NR_sysinfo, SysInfo, int, ARG_NUM_1)
|
||||||
|
SYSCALL_HAND_DEF(__NR_fchdir, SysFchdir, 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)
|
||||||
|
|
|
@ -211,8 +211,11 @@ 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_100.cpp",
|
||||||
"jffs/full/it_test_fs_jffs_103.cpp",
|
"jffs/full/it_test_fs_jffs_101.cpp",
|
||||||
|
"jffs/full/it_test_fs_jffs_106.cpp",
|
||||||
|
"jffs/full/it_test_fs_jffs_112.cpp",
|
||||||
|
"jffs/full/it_test_fs_jffs_113.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",
|
||||||
|
|
|
@ -271,8 +271,13 @@ void ItTestFsJffs001(void);
|
||||||
void ItTestFsJffs002(void);
|
void ItTestFsJffs002(void);
|
||||||
void ItTestFsJffs003(void);
|
void ItTestFsJffs003(void);
|
||||||
void ItTestFsJffs004(void);
|
void ItTestFsJffs004(void);
|
||||||
|
void ItTestFsJffs100(void);
|
||||||
|
void ItTestFsJffs101(void);
|
||||||
void ItTestFsJffs102(void);
|
void ItTestFsJffs102(void);
|
||||||
void ItTestFsJffs103(void);
|
void ItTestFsJffs103(void);
|
||||||
|
void ItTestFsJffs106(void);
|
||||||
|
void ItTestFsJffs112(void);
|
||||||
|
void ItTestFsJffs113(void);
|
||||||
VOID ItJffs001(VOID);
|
VOID ItJffs001(VOID);
|
||||||
VOID ItJffs002(VOID);
|
VOID ItJffs002(VOID);
|
||||||
VOID ItJffs003(VOID);
|
VOID ItJffs003(VOID);
|
||||||
|
|
|
@ -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_vfs_jffs.h"
|
||||||
|
|
||||||
static int TestCase(void)
|
static int TestCase(void)
|
||||||
{
|
{
|
|
@ -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_vfs_jffs.h"
|
||||||
|
|
||||||
#define TEST_STRLEN 30
|
#define TEST_STRLEN 30
|
||||||
|
|
||||||
|
@ -56,6 +56,16 @@ static int TestCase(void)
|
||||||
fd = open(pathname2, O_DIRECTORY);
|
fd = open(pathname2, O_DIRECTORY);
|
||||||
ICUNIT_GOTO_EQUAL(ret, JFFS_NO_ERROR, ret, EXIT);
|
ICUNIT_GOTO_EQUAL(ret, JFFS_NO_ERROR, ret, EXIT);
|
||||||
|
|
||||||
|
/* EBADF */
|
||||||
|
ret = fchdir(-1);
|
||||||
|
ICUNIT_GOTO_NOT_EQUAL(ret, JFFS_NO_ERROR, ret, EXIT1);
|
||||||
|
|
||||||
|
ret = errno;
|
||||||
|
ICUNIT_GOTO_EQUAL(ret, EBADF, ret, EXIT1);
|
||||||
|
|
||||||
|
ret = chdir(pathname);
|
||||||
|
ICUNIT_GOTO_EQUAL(ret, JFFS_NO_ERROR, ret, EXIT1);
|
||||||
|
|
||||||
pret = getcwd(buf1, TEST_STRLEN);
|
pret = getcwd(buf1, TEST_STRLEN);
|
||||||
ICUNIT_GOTO_NOT_EQUAL(pret, NULL, pret, EXIT1);
|
ICUNIT_GOTO_NOT_EQUAL(pret, NULL, pret, EXIT1);
|
||||||
ICUNIT_GOTO_STRING_EQUAL(buf1, pathname, buf1, EXIT1);
|
ICUNIT_GOTO_STRING_EQUAL(buf1, pathname, buf1, EXIT1);
|
|
@ -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_vfs_jffs.h"
|
||||||
|
|
||||||
#define TEST_STR "abcdefghijk"
|
#define TEST_STR "abcdefghijk"
|
||||||
|
|
||||||
|
@ -41,20 +41,30 @@ static int TestCase(void)
|
||||||
CHAR buf[JFFS_STANDARD_NAME_LENGTH] = TEST_STR;
|
CHAR buf[JFFS_STANDARD_NAME_LENGTH] = TEST_STR;
|
||||||
CHAR str[JFFS_STANDARD_NAME_LENGTH] = "";
|
CHAR str[JFFS_STANDARD_NAME_LENGTH] = "";
|
||||||
FILE *ptr = NULL;
|
FILE *ptr = NULL;
|
||||||
fd = open(pathname1, O_CREAT | O_RDWR, 0777);
|
|
||||||
|
fd = open(pathname1, O_CREAT, 0777);
|
||||||
ICUNIT_GOTO_NOT_EQUAL(fd, -1, fd, EXIT);
|
ICUNIT_GOTO_NOT_EQUAL(fd, -1, fd, EXIT);
|
||||||
len = write(fd, buf, JFFS_STANDARD_NAME_LENGTH);
|
|
||||||
ICUNIT_GOTO_NOT_EQUAL(len, -1, len, EXIT);
|
|
||||||
ret = close(fd);
|
ret = close(fd);
|
||||||
ICUNIT_GOTO_NOT_EQUAL(ret, -1, ret, EXIT1);
|
ICUNIT_GOTO_NOT_EQUAL(ret, -1, ret, EXIT1);
|
||||||
ptr = freopen(pathname1, "rb", stdin);
|
|
||||||
|
ptr = freopen(pathname1, "w+", stdin);
|
||||||
ICUNIT_GOTO_NOT_EQUAL(ptr, NULL, ptr, EXIT1);
|
ICUNIT_GOTO_NOT_EQUAL(ptr, NULL, ptr, EXIT1);
|
||||||
ret = scanf_s("%s", JFFS_STANDARD_NAME_LENGTH, str);
|
|
||||||
ICUNIT_GOTO_NOT_EQUAL(ret, 0, ret, EXIT1);
|
ret = fwrite(buf, JFFS_STANDARD_NAME_LENGTH, 1, ptr);
|
||||||
ret = strcmp(buf, str);
|
ICUNIT_GOTO_NOT_EQUAL(ret, -1, ret, EXIT1);
|
||||||
|
|
||||||
|
ret = fclose(ptr);
|
||||||
ICUNIT_GOTO_EQUAL(ret, 0, ret, EXIT1);
|
ICUNIT_GOTO_EQUAL(ret, 0, ret, EXIT1);
|
||||||
|
|
||||||
fclose(ptr);
|
fd = open(pathname1, O_RDWR, 0777);
|
||||||
|
ret = read(fd, str, JFFS_STANDARD_NAME_LENGTH);
|
||||||
|
|
||||||
|
ret = close(fd);
|
||||||
|
ICUNIT_GOTO_NOT_EQUAL(ret, -1, ret, EXIT1);
|
||||||
|
|
||||||
|
ret = strcmp(buf, str);
|
||||||
|
ICUNIT_GOTO_EQUAL(ret, 0, ret, EXIT1);
|
||||||
|
|
||||||
ret = unlink(pathname1);
|
ret = unlink(pathname1);
|
||||||
ICUNIT_GOTO_EQUAL(ret, 0, ret, EXIT);
|
ICUNIT_GOTO_EQUAL(ret, 0, ret, EXIT);
|
|
@ -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_vfs_jffs.h"
|
||||||
|
|
||||||
static int TestCase(void)
|
static int TestCase(void)
|
||||||
{
|
{
|
|
@ -28,15 +28,15 @@
|
||||||
* 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_vfs_jffs.h"
|
||||||
|
#include <pthread.h>
|
||||||
|
|
||||||
static FILE *g_filep;
|
static FILE *g_filep;
|
||||||
#define NUM 64
|
#define NUM 64
|
||||||
#define COUNT 10
|
#define COUNT 10
|
||||||
|
|
||||||
void *DoChild()
|
void *DoChild(void *)
|
||||||
{
|
{
|
||||||
int fd = 0;
|
|
||||||
int ret, count;
|
int ret, count;
|
||||||
char buf[NUM];
|
char buf[NUM];
|
||||||
|
|
|
@ -1043,6 +1043,28 @@ HWTEST_F(VfsJffsTest, ItTestFsJffs004, TestSize.Level0)
|
||||||
ItTestFsJffs004();
|
ItTestFsJffs004();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* *
|
||||||
|
* @tc.name: ItTestFsJffs100
|
||||||
|
* @tc.desc: function for VfsJffsTest
|
||||||
|
* @tc.type: FUNC
|
||||||
|
* @tc.require: AR000EEMQ9
|
||||||
|
*/
|
||||||
|
HWTEST_F(VfsJffsTest, ItTestFsJffs100, TestSize.Level0)
|
||||||
|
{
|
||||||
|
ItTestFsJffs100();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* *
|
||||||
|
* @tc.name: ItTestFsJffs101
|
||||||
|
* @tc.desc: function for VfsJffsTest
|
||||||
|
* @tc.type: FUNC
|
||||||
|
* @tc.require: AR000EEMQ9
|
||||||
|
*/
|
||||||
|
HWTEST_F(VfsJffsTest, ItTestFsJffs101, TestSize.Level0)
|
||||||
|
{
|
||||||
|
ItTestFsJffs101();
|
||||||
|
}
|
||||||
|
|
||||||
/* *
|
/* *
|
||||||
* @tc.name: ItTestFsJffs102
|
* @tc.name: ItTestFsJffs102
|
||||||
* @tc.desc: function for VfsJffsTest
|
* @tc.desc: function for VfsJffsTest
|
||||||
|
@ -1064,6 +1086,40 @@ HWTEST_F(VfsJffsTest, ItTestFsJffs103, TestSize.Level0)
|
||||||
{
|
{
|
||||||
ItTestFsJffs103();
|
ItTestFsJffs103();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* *
|
||||||
|
* @tc.name: ItTestFsJffs106
|
||||||
|
* @tc.desc: function for VfsJffsTest
|
||||||
|
* @tc.type: FUNC
|
||||||
|
* @tc.require: AR000EEMQ9
|
||||||
|
*/
|
||||||
|
HWTEST_F(VfsJffsTest, ItTestFsJffs106, TestSize.Level0)
|
||||||
|
{
|
||||||
|
ItTestFsJffs106();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* *
|
||||||
|
* @tc.name: ItTestFsJffs112
|
||||||
|
* @tc.desc: function for VfsJffsTest
|
||||||
|
* @tc.type: FUNC
|
||||||
|
* @tc.require: AR000EEMQ9
|
||||||
|
*/
|
||||||
|
HWTEST_F(VfsJffsTest, ItTestFsJffs112, TestSize.Level0)
|
||||||
|
{
|
||||||
|
ItTestFsJffs112();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* *
|
||||||
|
* @tc.name: ItTestFsJffs113
|
||||||
|
* @tc.desc: function for VfsJffsTest
|
||||||
|
* @tc.type: FUNC
|
||||||
|
* @tc.require: AR000EEMQ9
|
||||||
|
*/
|
||||||
|
HWTEST_F(VfsJffsTest, ItTestFsJffs113, TestSize.Level0)
|
||||||
|
{
|
||||||
|
ItTestFsJffs113();
|
||||||
|
}
|
||||||
|
|
||||||
/* *
|
/* *
|
||||||
* @tc.name: IT_JFFS_002
|
* @tc.name: IT_JFFS_002
|
||||||
* @tc.desc: function for VfsJffsTest
|
* @tc.desc: function for VfsJffsTest
|
||||||
|
|
Loading…
Reference in New Issue