Compare commits
12 Commits
weekly_202
...
weekly_202
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
16dae422eb | ||
|
|
96c16b0cbf | ||
|
|
748e0a4447 | ||
|
|
a1989614f4 | ||
|
|
3241a67dc6 | ||
|
|
14868aebdc | ||
|
|
b4873b06e8 | ||
|
|
bad1880ccb | ||
|
|
f996b22137 | ||
|
|
02147f4613 | ||
|
|
062235a60c | ||
|
|
8b11135135 |
8
BUILD.gn
8
BUILD.gn
@@ -137,8 +137,8 @@ config("public") {
|
||||
]
|
||||
|
||||
if (BOARD_SOC_FEATURE) {
|
||||
configs += [ "//device/board/$device_company:public" ]
|
||||
configs += [ "//device/soc/$LOSCFG_SOC_COMPANY:public" ]
|
||||
configs += [ "$DEVICE_BOARD_DIR/$device_company:public" ]
|
||||
configs += [ "$DEVICE_SOC_DIR/$LOSCFG_SOC_COMPANY:public" ]
|
||||
} else {
|
||||
if (HAVE_DEVICE_SDK) {
|
||||
configs += [ "$device_path:public" ]
|
||||
@@ -158,8 +158,8 @@ group("modules") {
|
||||
]
|
||||
|
||||
if (BOARD_SOC_FEATURE) {
|
||||
deps += [ "//device/board/$device_company" ]
|
||||
deps += [ "//device/soc/$LOSCFG_SOC_COMPANY" ]
|
||||
deps += [ "$DEVICE_BOARD_DIR/$device_company" ]
|
||||
deps += [ "$DEVICE_SOC_DIR/$LOSCFG_SOC_COMPANY" ]
|
||||
} else {
|
||||
if (HAVE_DEVICE_SDK) {
|
||||
deps += [ device_path ]
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
],
|
||||
"rom": "300KB",
|
||||
"ram": "100KB",
|
||||
"external_deps": {
|
||||
"deps": {
|
||||
"components": [
|
||||
"utils_lite"
|
||||
],
|
||||
@@ -58,4 +58,4 @@
|
||||
"test": []
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
import("//third_party/FatFs/FatFs.gni")
|
||||
import("$THIRDPARTY_FATFS_DIR/FatFs.gni")
|
||||
|
||||
module_switch = defined(LOSCFG_FS_FAT)
|
||||
module_name = get_path_info(rebase_path("."), "name")
|
||||
|
||||
@@ -387,7 +387,8 @@ int FatfsOpen(struct File *file, const char *path, int oflag)
|
||||
errno = ENOMEM;
|
||||
return (int)LOS_NOK;
|
||||
}
|
||||
|
||||
(void)memset_s(fp, sizeof(FIL), 0, sizeof(FIL));
|
||||
|
||||
ret = FsChangeDrive(path);
|
||||
if (ret != (int)LOS_OK) {
|
||||
PRINT_ERR("FAT open ChangeDrive err 0x%x!\r\n", ret);
|
||||
@@ -675,7 +676,8 @@ int FatfsOpendir(struct Dir *dir, const char *dirName)
|
||||
errno = ENOENT;
|
||||
return (int)LOS_NOK;
|
||||
}
|
||||
|
||||
(void)memset_s(dp, sizeof(DIR), 0, sizeof(DIR));
|
||||
|
||||
res = f_opendir(dp, dirName);
|
||||
if (res != FR_OK) {
|
||||
PRINT_ERR("FAT opendir err 0x%x!\r\n", res);
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
import("//third_party/littlefs/littlefs.gni")
|
||||
import("$THIRDPARTY_LITTLEFS_DIR/littlefs.gni")
|
||||
|
||||
module_switch = defined(LOSCFG_FS_LITTLEFS)
|
||||
module_name = get_path_info(rebase_path("."), "name")
|
||||
|
||||
@@ -78,7 +78,7 @@ struct File {
|
||||
off_t fOffset;
|
||||
INT32 fOwner;
|
||||
struct MountPoint *fMp;
|
||||
void *fData; /* file system opreations handle, fatfs FIL, etc. */
|
||||
void *fData; /* file system operations handle, fatfs FIL, etc. */
|
||||
const char *fullPath;
|
||||
};
|
||||
|
||||
|
||||
@@ -184,7 +184,7 @@ STATIC struct MountPoint *VfsMountPointInit(const char *source, const char *targ
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Find fsMap coresponding to the fsType */
|
||||
/* Find fsMap corresponding to the fsType */
|
||||
mFs = VfsFsMapGet(fsType);
|
||||
if ((mFs == NULL) || (mFs->fsMops == NULL) || (mFs->fsMops->mount == NULL)) {
|
||||
errno = ENODEV;
|
||||
|
||||
@@ -27,14 +27,14 @@
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
import("$LITEOSTHIRDPARTY/lwip/lwip.gni")
|
||||
import("$LITEOSTOPDIR/components/net/lwip-2.1/lwip_porting.gni")
|
||||
import("$THIRDPARTY_LWIP_DIR/lwip.gni")
|
||||
|
||||
module_switch = defined(LOSCFG_NET_LWIP_SACK)
|
||||
module_name = "lwip"
|
||||
kernel_module(module_name) {
|
||||
sources = LWIP_PORTING_FILES + LWIPNOAPPSFILES - [ "$LWIPDIR/api/sockets.c" ]
|
||||
include_dirs = [ "//commonlibrary/utils_lite/include" ]
|
||||
include_dirs = [ "$COMMONLIBRARY_UTILS_LITE_DIR/include" ]
|
||||
}
|
||||
|
||||
config("public") {
|
||||
|
||||
@@ -33,5 +33,5 @@ module_name = get_path_info(rebase_path("."), "name")
|
||||
kernel_module(module_name) {
|
||||
sources = []
|
||||
|
||||
deps = [ "//third_party/musl/porting/liteos_m/user" ]
|
||||
deps = [ "$THIRDPARTY_MUSL_DIR/porting/liteos_m/user" ]
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
import("//third_party/cmsis/cmsis.gni")
|
||||
import("$THIRDPARTY_CMSIS_DIR/cmsis.gni")
|
||||
|
||||
module_switch = defined(LOSCFG_KAL_CMSIS)
|
||||
module_name = get_path_info(rebase_path("."), "name")
|
||||
|
||||
@@ -27,14 +27,14 @@
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
import("//third_party/musl/porting/liteos_m_iccarm/kernel/iccarm.gni")
|
||||
import("$THIRDPARTY_MUSL_DIR/porting/liteos_m_iccarm/kernel/iccarm.gni")
|
||||
|
||||
module_switch = defined(LOSCFG_LIBC_ICCARM)
|
||||
module_name = get_path_info(rebase_path("."), "name")
|
||||
kernel_module(module_name) {
|
||||
configs += [ "$LITEOSTOPDIR:warn_config" ]
|
||||
|
||||
deps = [ "//third_party/musl/porting/liteos_m_iccarm/kernel" ]
|
||||
deps = [ "$THIRDPARTY_MUSL_DIR/porting/liteos_m_iccarm/kernel" ]
|
||||
}
|
||||
|
||||
config("public") {
|
||||
|
||||
@@ -28,14 +28,14 @@
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
import("//third_party/musl/porting/liteos_m/kernel/musl.gni")
|
||||
import("$THIRDPARTY_MUSL_DIR/porting/liteos_m/kernel/musl.gni")
|
||||
|
||||
module_switch = defined(LOSCFG_LIBC_MUSL)
|
||||
module_name = get_path_info(rebase_path("."), "name")
|
||||
kernel_module(module_name) {
|
||||
configs += [ "$LITEOSTOPDIR:warn_config" ]
|
||||
|
||||
deps = [ "//third_party/musl/porting/liteos_m/kernel" ]
|
||||
deps = [ "$THIRDPARTY_MUSL_DIR/porting/liteos_m/kernel" ]
|
||||
}
|
||||
|
||||
config("public") {
|
||||
|
||||
@@ -43,7 +43,7 @@ kernel_module(module_name) {
|
||||
|
||||
if (defined(LOSCFG_FS_VFS)) {
|
||||
sources +=
|
||||
[ "//third_party/musl/porting/liteos_m/kernel/src/misc/realpath.c" ]
|
||||
[ "$THIRDPARTY_MUSL_DIR/porting/liteos_m/kernel/src/misc/realpath.c" ]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
import("//third_party/bounds_checking_function/libsec_src.gni")
|
||||
import("$THIRDPARTY_BOUNDS_CHECKING_FUNCTION_DIR/libsec_src.gni")
|
||||
|
||||
module_name = get_path_info(rebase_path("."), "name")
|
||||
kernel_module(module_name) {
|
||||
|
||||
@@ -613,11 +613,22 @@ struct tm *gmtime(const time_t *timer)
|
||||
|
||||
struct tm *localtime_r(const time_t *timep, struct tm *result)
|
||||
{
|
||||
INT32 ret;
|
||||
|
||||
if ((timep == NULL) || (result == NULL)) {
|
||||
errno = EFAULT;
|
||||
return NULL;
|
||||
}
|
||||
if (!ConvertSecs2Utc(*timep, -TIMEZONE, result)) {
|
||||
|
||||
if (g_rtcTimeFunc.RtcGetTimezoneHook != NULL) {
|
||||
INT32 tempTimezone = 0;
|
||||
g_rtcTimeFunc.RtcGetTimezoneHook(&tempTimezone);
|
||||
ret = ConvertSecs2Utc(*timep, -tempTimezone, result);
|
||||
} else {
|
||||
ret = ConvertSecs2Utc(*timep, -TIMEZONE, result);
|
||||
}
|
||||
|
||||
if (!ret) {
|
||||
errno = EINVAL;
|
||||
return NULL;
|
||||
}
|
||||
@@ -660,7 +671,14 @@ static time_t ConvertUtc2Secs(struct tm *tm)
|
||||
seconds += (tm->tm_mday - 1) * SECS_PER_DAY;
|
||||
seconds += tm->tm_hour * SECS_PER_HOUR + tm->tm_min * SECS_PER_MIN + tm->tm_sec;
|
||||
|
||||
seconds += TIMEZONE;
|
||||
if (g_rtcTimeFunc.RtcGetTimezoneHook != NULL) {
|
||||
INT32 tempTimezone = 0;
|
||||
g_rtcTimeFunc.RtcGetTimezoneHook(&tempTimezone);
|
||||
seconds += tempTimezone;
|
||||
} else {
|
||||
seconds += TIMEZONE;
|
||||
}
|
||||
|
||||
return seconds;
|
||||
}
|
||||
|
||||
@@ -686,7 +704,14 @@ time_t mktime(struct tm *tmptr)
|
||||
}
|
||||
timeInSeconds = ConvertUtc2Secs(tmptr);
|
||||
/* normalize tm_wday and tm_yday */
|
||||
ConvertSecs2Utc(timeInSeconds, -TIMEZONE, tmptr);
|
||||
if (g_rtcTimeFunc.RtcGetTimezoneHook != NULL) {
|
||||
INT32 tempTimezone = 0;
|
||||
g_rtcTimeFunc.RtcGetTimezoneHook(&tempTimezone);
|
||||
ConvertSecs2Utc(timeInSeconds, -tempTimezone, tmptr);
|
||||
} else {
|
||||
ConvertSecs2Utc(timeInSeconds, -TIMEZONE, tmptr);
|
||||
}
|
||||
|
||||
return timeInSeconds;
|
||||
}
|
||||
|
||||
@@ -695,20 +720,11 @@ int gettimeofday(struct timeval *tv, void *ptz)
|
||||
struct timezone *tz = (struct timezone *)ptz;
|
||||
|
||||
if (tv != NULL) {
|
||||
INT32 rtcRet;
|
||||
UINT64 usec = 0;
|
||||
UINT64 currentTime;
|
||||
|
||||
if (g_rtcTimeFunc.RtcGetTimeHook != NULL) {
|
||||
rtcRet = g_rtcTimeFunc.RtcGetTimeHook(&usec);
|
||||
if (rtcRet != 0) {
|
||||
currentTime = GetCurrentTime();
|
||||
tv->tv_sec = currentTime / OS_SYS_MS_PER_SECOND;
|
||||
tv->tv_usec = (currentTime % OS_SYS_MS_PER_SECOND) * OS_SYS_MS_PER_SECOND;
|
||||
} else {
|
||||
tv->tv_sec = usec / OS_SYS_US_PER_SECOND;
|
||||
tv->tv_usec = usec % OS_SYS_US_PER_SECOND;
|
||||
}
|
||||
if ((g_rtcTimeFunc.RtcGetTimeHook != NULL) && (g_rtcTimeFunc.RtcGetTimeHook(&usec) == 0)) {
|
||||
tv->tv_sec = usec / OS_SYS_US_PER_SECOND;
|
||||
tv->tv_usec = usec % OS_SYS_US_PER_SECOND;
|
||||
} else {
|
||||
struct timespec ts;
|
||||
if (-1 == clock_gettime(CLOCK_REALTIME, &ts)) {
|
||||
@@ -718,7 +734,7 @@ int gettimeofday(struct timeval *tv, void *ptz)
|
||||
tv->tv_usec = ts.tv_nsec / OS_SYS_NS_PER_US;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (tz != NULL) {
|
||||
if (g_rtcTimeFunc.RtcGetTimezoneHook != NULL) {
|
||||
INT32 tempTimezone = 0;
|
||||
@@ -740,12 +756,12 @@ int settimeofday(const struct timeval *tv, const struct timezone *tz)
|
||||
{
|
||||
struct timespec ts;
|
||||
|
||||
if (tv == NULL) {
|
||||
if ((tv == NULL) && (tz == NULL)) {
|
||||
errno = EFAULT;
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (tv->tv_usec >= OS_SYS_US_PER_SECOND) {
|
||||
if ((tv != NULL) && (tv->tv_usec >= OS_SYS_US_PER_SECOND)) {
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
@@ -764,18 +780,20 @@ int settimeofday(const struct timeval *tv, const struct timezone *tz)
|
||||
}
|
||||
}
|
||||
|
||||
if (g_rtcTimeFunc.RtcSetTimeHook != NULL) {
|
||||
UINT64 usec;
|
||||
g_rtcTimeBase = tv->tv_sec * OS_SYS_MS_PER_SECOND + tv->tv_usec / OS_SYS_MS_PER_SECOND;
|
||||
usec = tv->tv_sec * OS_SYS_US_PER_SECOND + tv->tv_usec;
|
||||
if (-1 == g_rtcTimeFunc.RtcSetTimeHook(g_rtcTimeBase, &usec)) {
|
||||
return -1;
|
||||
}
|
||||
} else {
|
||||
ts.tv_sec = tv->tv_sec;
|
||||
ts.tv_nsec = tv->tv_usec * OS_SYS_NS_PER_US;
|
||||
if (-1 == clock_settime(CLOCK_REALTIME, &ts)) {
|
||||
return -1;
|
||||
if (tv != NULL) {
|
||||
if (g_rtcTimeFunc.RtcSetTimeHook != NULL) {
|
||||
UINT64 usec;
|
||||
g_rtcTimeBase = tv->tv_sec * OS_SYS_MS_PER_SECOND + tv->tv_usec / OS_SYS_MS_PER_SECOND;
|
||||
usec = tv->tv_sec * OS_SYS_US_PER_SECOND + tv->tv_usec;
|
||||
if (g_rtcTimeFunc.RtcSetTimeHook(g_rtcTimeBase, &usec) < 0) {
|
||||
return -1;
|
||||
}
|
||||
} else {
|
||||
ts.tv_sec = tv->tv_sec;
|
||||
ts.tv_nsec = tv->tv_usec * OS_SYS_NS_PER_US;
|
||||
if (clock_settime(CLOCK_REALTIME, &ts) < 0) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
15
liteos.gni
15
liteos.gni
@@ -51,8 +51,19 @@ exec_script("//build/lite/run_shell_cmd.py",
|
||||
import("$root_out_dir/config.gni")
|
||||
|
||||
LITEOSTOPDIR = "//kernel/liteos_m"
|
||||
LITEOSTHIRDPARTY = "//third_party"
|
||||
HDFTOPDIR = "//drivers/hdf_core/adapter/khdf/liteos_m"
|
||||
THIRDPARTY_BOUNDS_CHECKING_FUNCTION_DIR =
|
||||
"//third_party/bounds_checking_function"
|
||||
LITEOSTHIRDPARTY = "//third_party"
|
||||
THIRDPARTY_FATFS_DIR = "//third_party/FatFs"
|
||||
THIRDPARTY_MUSL_DIR = "//third_party/musl"
|
||||
THIRDPARTY_LITTLEFS_DIR = "//third_party/littlefs"
|
||||
THIRDPARTY_CMSIS_DIR = "//third_party/cmsis"
|
||||
THIRDPARTY_LWIP_DIR = "//third_party/lwip"
|
||||
DEVICE_BOARD_DIR = "//device/board"
|
||||
DEVICE_SOC_DIR = "//device/soc"
|
||||
COMMONLIBRARY_UTILS_LITE_DIR = "//commonlibrary/utils_lite"
|
||||
TEST_XTS_TOOLS_DIR = "//test/xts/tools"
|
||||
|
||||
ARCH = ""
|
||||
if (defined(LOSCFG_ARCH_ARM_AARCH32)) {
|
||||
@@ -163,8 +174,8 @@ set_defaults("kernel_module") {
|
||||
"$LITEOSTOPDIR:los_config",
|
||||
]
|
||||
visibility = [
|
||||
"$LITEOSTOPDIR:*",
|
||||
":*",
|
||||
"$LITEOSTOPDIR:*",
|
||||
"..:*",
|
||||
"../..:*",
|
||||
]
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
|
||||
static_library("test_dynlink") {
|
||||
sources = [
|
||||
"It_los_dynlink.c",
|
||||
@@ -52,14 +54,5 @@ static_library("test_dynlink") {
|
||||
"It_los_dynlink_020.c",
|
||||
]
|
||||
|
||||
include_dirs = [
|
||||
"../../../../kernel/include",
|
||||
"../../../../kernel/arch/include",
|
||||
"../../../include",
|
||||
"../../../../utils",
|
||||
"../../../../components/dynlink",
|
||||
".",
|
||||
"../../../../components/cpup",
|
||||
"//third_party/bounds_checking_function/include",
|
||||
]
|
||||
configs += [ "$LITEOSTOPDIR/testsuites:include" ]
|
||||
}
|
||||
|
||||
@@ -51,6 +51,7 @@ VOID ItLosDynlink007(VOID);
|
||||
VOID ItLosDynlink008(VOID);
|
||||
VOID ItLosDynlink009(VOID);
|
||||
VOID ItLosDynlink010(VOID);
|
||||
VOID ItLosDynlink011(VOID);
|
||||
VOID ItLosDynlink012(VOID);
|
||||
VOID ItLosDynlink013(VOID);
|
||||
VOID ItLosDynlink014(VOID);
|
||||
|
||||
@@ -33,8 +33,8 @@
|
||||
/* Test invalid params */
|
||||
STATIC UINT32 TestCase(VOID)
|
||||
{
|
||||
VOID *handle = NULL;
|
||||
VOID *invalHandle = NULL;
|
||||
CHAR *handle = NULL;
|
||||
CHAR *invalHandle = NULL;
|
||||
INT32 (*func)(INT32, INT32) = NULL;
|
||||
CHAR *symbolName = "test_api";
|
||||
CHAR *dsoName = DSO_FULL_PATH("Align4_dynamic_align4.so");
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
STATIC UINT32 TestCase(VOID)
|
||||
{
|
||||
VOID *handle = NULL;
|
||||
INT32 (*func)() = NULL;
|
||||
INT32 (*func)(VOID) = NULL;
|
||||
INT32 *pValue = NULL;
|
||||
CHAR *symbolName1 = "dyn_bss_func";
|
||||
CHAR *symbolName2 = "test_array";
|
||||
@@ -44,7 +44,7 @@ STATIC UINT32 TestCase(VOID)
|
||||
handle = (VOID *)LOS_SoLoad(dsoName, NULL);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(handle, NULL, handle);
|
||||
|
||||
func = (INT32 (*)())LOS_FindSym(handle, symbolName1);
|
||||
func = (INT32 (*)(VOID))LOS_FindSym(handle, symbolName1);
|
||||
ICUNIT_GOTO_NOT_EQUAL(func, NULL, func, EXIT);
|
||||
ret = func();
|
||||
ICUNIT_GOTO_EQUAL(ret, 2117, ret, EXIT);
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
STATIC UINT32 TestCase(VOID)
|
||||
{
|
||||
VOID *handle = NULL;
|
||||
INT32 (*func)() = NULL;
|
||||
INT32 (*func)(VOID) = NULL;
|
||||
INT32 *pValueAddr = NULL;
|
||||
INT32 **ppValueAddr = NULL;
|
||||
CHAR *symbolName1 = "get_value100";
|
||||
@@ -49,12 +49,12 @@ STATIC UINT32 TestCase(VOID)
|
||||
handle = (VOID *)LOS_SoLoad(dsoName, NULL);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(handle, NULL, handle);
|
||||
|
||||
func = (INT32 (*)())LOS_FindSym(handle, symbolName1);
|
||||
func = (INT32 (*)(VOID))LOS_FindSym(handle, symbolName1);
|
||||
ICUNIT_GOTO_NOT_EQUAL(func, NULL, func, EXIT);
|
||||
ret = func();
|
||||
ICUNIT_GOTO_EQUAL(ret, 100, ret, EXIT);
|
||||
|
||||
func = (INT32 (*)())LOS_FindSym(handle, symbolName2);
|
||||
func = (INT32 (*)(VOID))LOS_FindSym(handle, symbolName2);
|
||||
ICUNIT_GOTO_NOT_EQUAL(func, NULL, func, EXIT);
|
||||
ret = func();
|
||||
ICUNIT_GOTO_EQUAL(ret, 200, ret, EXIT);
|
||||
|
||||
@@ -34,7 +34,6 @@
|
||||
STATIC UINT32 TestCase(VOID)
|
||||
{
|
||||
VOID *handle = NULL;
|
||||
VOID (*func)(INT32, INT32) = NULL;
|
||||
CHAR *dsoName = DSO_FULL_PATH("Align4_dynamic_stdlib.so");
|
||||
|
||||
handle = (VOID *)LOS_SoLoad(dsoName, NULL);
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_m/liteos.gni")
|
||||
import("//test/xts/tools/lite/build/suite_lite.gni")
|
||||
import("$TEST_XTS_TOOLS_DIR/lite/build/suite_lite.gni")
|
||||
|
||||
static_library("posix_test") {
|
||||
sources = [
|
||||
@@ -65,7 +65,7 @@ static_library("posix_test") {
|
||||
}
|
||||
|
||||
include_dirs = [
|
||||
"//test/xts/tools/hctest/include",
|
||||
"$TEST_XTS_TOOLS_DIR/hctest/include",
|
||||
"src",
|
||||
]
|
||||
|
||||
|
||||
@@ -1723,7 +1723,125 @@ LITE_TEST_CASE(PosixFsFuncTestSuite, testFsOpen005, Function | MediumTest | Leve
|
||||
}
|
||||
|
||||
/* *
|
||||
* @tc.number SUB_KERNEL_FS_CLOSE_005
|
||||
* @tc.number SUB_KERNEL_FS_OPEN_006
|
||||
* @tc.name open ro + ro
|
||||
* @tc.desc [C- SOFTWARE -0200]
|
||||
*/
|
||||
LITE_TEST_CASE(PosixFsFuncTestSuite, testFsOpen006, Function | MediumTest | Level1)
|
||||
{
|
||||
int32_t ret;
|
||||
const char tmpFileName[TEST_BUF_SIZE] = { FILE1 };
|
||||
|
||||
int32_t fd = open(tmpFileName, O_CREAT | O_RDWR, TEST_MODE_HIGH);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(fd, POSIX_FS_IS_ERROR, fd);
|
||||
|
||||
ret = close(fd);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(ret, POSIX_FS_IS_ERROR, ret);
|
||||
|
||||
int32_t fd1 = open(tmpFileName, O_RDONLY, TEST_MODE_NORMAL);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(fd, POSIX_FS_IS_ERROR, fd1);
|
||||
|
||||
int32_t fd2 = open(tmpFileName, O_RDONLY, TEST_MODE_NORMAL);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(fd2, POSIX_FS_IS_ERROR, fd2);
|
||||
|
||||
int32_t fd3 = open(tmpFileName, O_RDONLY, TEST_MODE_NORMAL);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(fd3, POSIX_FS_IS_ERROR, fd3);
|
||||
|
||||
ret = close(fd1);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(ret, POSIX_FS_IS_ERROR, ret);
|
||||
ret = close(fd2);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(ret, POSIX_FS_IS_ERROR, ret);
|
||||
ret = close(fd3);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(ret, POSIX_FS_IS_ERROR, ret);
|
||||
|
||||
ret = unlink(tmpFileName);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(ret, POSIX_FS_IS_ERROR, ret);
|
||||
|
||||
return POSIX_FS_NO_ERROR;
|
||||
}
|
||||
|
||||
/* *
|
||||
* @tc.number SUB_KERNEL_FS_OPEN_007
|
||||
* @tc.name open rw + rw
|
||||
* @tc.desc [C- SOFTWARE -0200]
|
||||
*/
|
||||
LITE_TEST_CASE(PosixFsFuncTestSuite, testFsOpen007, Function | MediumTest | Level1)
|
||||
{
|
||||
int32_t ret;
|
||||
const char tmpFileName[TEST_BUF_SIZE] = { FILE1 };
|
||||
|
||||
int32_t fd = open(tmpFileName, O_CREAT | O_RDWR, TEST_MODE_HIGH);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(fd, POSIX_FS_IS_ERROR, fd);
|
||||
|
||||
ret = close(fd);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(ret, POSIX_FS_IS_ERROR, ret);
|
||||
|
||||
int32_t fd1 = open(tmpFileName, O_RDWR, TEST_MODE_NORMAL);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(fd, POSIX_FS_IS_ERROR, fd1);
|
||||
|
||||
int32_t fd2 = open(tmpFileName, O_RDWR, TEST_MODE_NORMAL);
|
||||
ICUNIT_ASSERT_EQUAL(fd2, POSIX_FS_IS_ERROR, fd2);
|
||||
ICUNIT_ASSERT_EQUAL(errno, EBUSY, POSIX_FS_IS_ERROR);
|
||||
|
||||
ret = close(fd1);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(ret, POSIX_FS_IS_ERROR, ret);
|
||||
|
||||
ret = unlink(tmpFileName);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(ret, POSIX_FS_IS_ERROR, ret);
|
||||
|
||||
return POSIX_FS_NO_ERROR;
|
||||
}
|
||||
|
||||
/* *
|
||||
* @tc.number SUB_KERNEL_FS_OPEN_008
|
||||
* @tc.name open
|
||||
* @tc.desc [C- SOFTWARE -0200]
|
||||
*/
|
||||
LITE_TEST_CASE(PosixFsFuncTestSuite, testFsOpen008, Function | MediumTest | Level1)
|
||||
{
|
||||
int32_t ret;
|
||||
const char tmpFileName[TEST_BUF_SIZE] = { FILE1 };
|
||||
|
||||
int32_t fd = open(tmpFileName, O_CREAT | O_RDWR, TEST_MODE_HIGH);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(fd, POSIX_FS_IS_ERROR, fd);
|
||||
|
||||
ret = close(fd);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(ret, POSIX_FS_IS_ERROR, ret);
|
||||
|
||||
int32_t fd1 = open(tmpFileName, O_RDONLY, TEST_MODE_NORMAL);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(fd1, POSIX_FS_IS_ERROR, fd1);
|
||||
|
||||
int32_t fd2 = open(tmpFileName, O_RDONLY, TEST_MODE_NORMAL);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(fd2, POSIX_FS_IS_ERROR, fd2);
|
||||
|
||||
ret = close(fd1);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(ret, POSIX_FS_IS_ERROR, ret);
|
||||
|
||||
ret = close(fd2);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(ret, POSIX_FS_IS_ERROR, ret);
|
||||
|
||||
fd1 = open(tmpFileName, O_RDWR, TEST_MODE_NORMAL);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(fd1, POSIX_FS_IS_ERROR, fd1);
|
||||
|
||||
fd2 = open(tmpFileName, O_RDWR, TEST_MODE_NORMAL);
|
||||
ICUNIT_ASSERT_EQUAL(fd2, POSIX_FS_IS_ERROR, fd2);
|
||||
|
||||
int32_t fd3 = open(tmpFileName, O_RDWR, TEST_MODE_NORMAL);
|
||||
ICUNIT_ASSERT_EQUAL(fd3, POSIX_FS_IS_ERROR, fd3);
|
||||
|
||||
ret = close(fd1);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(ret, POSIX_FS_IS_ERROR, ret);
|
||||
|
||||
ret = unlink(tmpFileName);
|
||||
ICUNIT_ASSERT_NOT_EQUAL(ret, POSIX_FS_IS_ERROR, ret);
|
||||
|
||||
return POSIX_FS_NO_ERROR;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* *
|
||||
* @tc.number SUB_KERNEL_FS_CLOSE_001
|
||||
* @tc.name close
|
||||
* @tc.desc [C- SOFTWARE -0200]
|
||||
*/
|
||||
@@ -2045,6 +2163,11 @@ void PosixFsAPITest(void)
|
||||
RUN_ONE_TESTCASE(testFsOpen003);
|
||||
RUN_ONE_TESTCASE(testFsOpen004);
|
||||
RUN_ONE_TESTCASE(testFsOpen005);
|
||||
#if (LOSCFG_SUPPORT_FATFS == 1)
|
||||
RUN_ONE_TESTCASE(testFsOpen006);
|
||||
RUN_ONE_TESTCASE(testFsOpen007);
|
||||
RUN_ONE_TESTCASE(testFsOpen008);
|
||||
#endif
|
||||
RUN_ONE_TESTCASE(testFsClose001);
|
||||
RUN_ONE_TESTCASE(testFsWrite001);
|
||||
RUN_ONE_TESTCASE(testFsWrite002);
|
||||
|
||||
@@ -293,6 +293,42 @@ LITE_TEST_CASE(PosixTimeFuncTestSuite, testTimeLocaltime002, Function | MediumTe
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* *
|
||||
* @tc.number SUB_KERNEL_TIME_LOCALTIME_003
|
||||
* @tc.name test settimeofday api
|
||||
* @tc.desc [C- SOFTWARE -0200]
|
||||
*/
|
||||
LITE_TEST_CASE(PosixTimeFuncTestSuite, testTimeLocaltime003, Function | MediumTest | Level1)
|
||||
{
|
||||
char cTime[32]; /* 32, no special meaning */
|
||||
time_t tStart;
|
||||
time_t tEnd;
|
||||
struct timezone tz;
|
||||
struct timeval timeSet = {
|
||||
.tv_sec = 86399, /* 86399, no special meaning */
|
||||
.tv_usec = 0
|
||||
};
|
||||
|
||||
int ret = gettimeofday(NULL, &tz);
|
||||
ICUNIT_ASSERT_EQUAL(ret, 0, ret);
|
||||
|
||||
ret = settimeofday(&timeSet, &tz);
|
||||
time(&tStart);
|
||||
sleep(2); /* 2, sleep time */
|
||||
time(&tEnd);
|
||||
ICUNIT_ASSERT_EQUAL(ret, 0, ret);
|
||||
|
||||
struct tm *tmStart = localtime(&tStart);
|
||||
strftime(cTime, sizeof(cTime), "%H:%M:%S", tmStart);
|
||||
ICUNIT_ASSERT_STRING_EQUAL(cTime, "07:59:59", 0);
|
||||
LOG("\n time_t=%lld, first time:%s", tStart, cTime);
|
||||
struct tm *tmEnd = localtime(&tEnd);
|
||||
strftime(cTime, sizeof(cTime), "%H:%M:%S", tmEnd);
|
||||
ICUNIT_ASSERT_STRING_EQUAL(cTime, "08:00:01", 0);
|
||||
LOG("\n time_t=%lld, first time:%s", tEnd, cTime);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* *
|
||||
* @tc.number SUB_KERNEL_TIME_LOCALTIMER_001
|
||||
* @tc.name localtime_r api base test
|
||||
@@ -593,6 +629,7 @@ void PosixTimeFuncTest(void)
|
||||
#if (LOSCFG_LIBC_MUSL == 1)
|
||||
RUN_ONE_TESTCASE(testTimeLocaltime001);
|
||||
RUN_ONE_TESTCASE(testTimeLocaltime002);
|
||||
RUN_ONE_TESTCASE(testTimeLocaltime003);
|
||||
RUN_ONE_TESTCASE(testTimeLocaltimer001);
|
||||
RUN_ONE_TESTCASE(testTimeLocaltimer002);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user