Skip to content
Snippets Groups Projects
Commit 27f4df62 authored by Esben Haabendal's avatar Esben Haabendal
Browse files

Merge branch 'appspawn-3.0-again' into 'kirkstone'

openharmony-standard: Separate package for appspawn component

See merge request eclipse/oniro-core/meta-openharmony!32
parents fb3cac22 4eafdea2
No related branches found
No related tags found
1 merge request!32openharmony-standard: Separate package for appspawn component
Pipeline #6039 failed
Showing
with 179 additions and 54 deletions
# SPDX-FileCopyrightText: Huawei Inc.
#
# SPDX-License-Identifier: Apache-2.0
Patch for //base/startup/appspawn_standard repository of OpenHarmony 3.0 codebase.
Fix App_Spawn_Server_Override_007 test.
Signed-off-by: Esben Haabendal <esben.haabendal@huawei.com>
Upstream-Status: Pending
diff --git a/test/unittest/app_spawn_server_test/app_spawn_server_override_test.cpp b/test/unittest/app_spawn_server_test/app_spawn_server_override_test.cpp
index 8956e0c272b9..516ca82a8ef6 100644
--- a/test/unittest/app_spawn_server_test/app_spawn_server_override_test.cpp
+++ b/test/unittest/app_spawn_server_test/app_spawn_server_override_test.cpp
@@ -208,8 +208,9 @@ HWTEST_F(AppSpawnServerOverrideTest, App_Spawn_Server_Override_007, TestSize.Lev
{
GTEST_LOG_(INFO) << "App_Spawn_Server_Override_007 start";
- char longProcName[20] = "longProcName";
- int64_t longProcNameLen = strlen(longProcName);
+ char longProcName[22] = "longProcName";
+ // longProcName array must be large enough to hold processName set below
+ int64_t longProcNameLen = sizeof(longProcName);
char processName[32] = "processName0123456789";
int32_t len = sizeof(processName);
# SPDX-FileCopyrightText: Huawei Inc.
#
# SPDX-License-Identifier: Apache-2.0
Patch for //base/startup/appspawn_standard repository of OpenHarmony 3.0 codebase.
Prevent buffer overflow error in AppSpawn::SetProcessName() when processName is
longer than longProcNameLen - 1.
Signed-off-by: Esben Haabendal <esben.haabendal@huawei.com>
Upstream-Status: Pending
diff --git a/src/appspawn_server.cpp b/src/appspawn_server.cpp
index 9e238409ad41..ea539e5b5b2a 100644
--- a/src/appspawn_server.cpp
+++ b/src/appspawn_server.cpp
@@ -267,7 +267,7 @@ int32_t AppSpawnServer::SetProcessName(
}
// set long process name
- if (strncpy_s(longProcName, len, processName, len) != EOK) {
+ if (strncpy_s(longProcName, longProcNameLen, processName, len) != EOK) {
HiLog::Error(LABEL, "strncpy_s long name error: %{public}d", strerror_r(errno, err_string, ERR_STRING_SZ));
return -EINVAL;
}
#!/bin/sh
# SPDX-FileCopyrightText: Huawei Inc.
#
# SPDX-License-Identifier: Apache-2.0
# Start the hilogd service if it is not already running
systemctl start hilogd.service
# Add path to hilog test suite $PATH
PTEST_PATH=$(dirname $(readlink -f $0))
export PATH="${PTEST_PATH}:${PATH}"
HiLogNDKTest
TEST_RESULT=$?
if test "$TEST_RESULT" -eq 0; then
echo "PASS: HiLogNDKTest"
else
echo "FAIL: HiLogNDKTest"
fi
# SPDX-FileCopyrightText: Huawei Inc.
#
# SPDX-License-Identifier: Apache-2.0
Patch for //base/startup/appspawn_standard repository of OpenHarmony 3.1 codebase.
Fix App_Spawn_Server_Override_007 test.
Signed-off-by: Esben Haabendal <esben.haabendal@huawei.com>
Upstream-Status: Pending
diff --git a/test/unittest/app_spawn_server_test/app_spawn_server_override_test.cpp b/test/unittest/app_spawn_server_test/app_spawn_server_override_test.cpp
index 8956e0c272b9..516ca82a8ef6 100644
--- a/test/unittest/app_spawn_server_test/app_spawn_server_override_test.cpp
+++ b/test/unittest/app_spawn_server_test/app_spawn_server_override_test.cpp
@@ -208,8 +208,9 @@ HWTEST_F(AppSpawnServerOverrideTest, App_Spawn_Server_Override_007, TestSize.Lev
{
GTEST_LOG_(INFO) << "App_Spawn_Server_Override_007 start";
- char longProcName[20] = "longProcName";
- int64_t longProcNameLen = strlen(longProcName);
+ char longProcName[22] = "longProcName";
+ // longProcName array must be large enough to hold processName set below
+ int64_t longProcNameLen = sizeof(longProcName);
char processName[32] = "processName0123456789";
int32_t len = sizeof(processName);
# SPDX-FileCopyrightText: Huawei Inc.
#
# SPDX-License-Identifier: Apache-2.0
Patch for //base/startup/appspawn_standard repository of OpenHarmony 3.1 codebase.
Prevent buffer overflow error in AppSpawn::SetProcessName() when processName is
longer than longProcNameLen - 1.
Signed-off-by: Esben Haabendal <esben.haabendal@huawei.com>
Upstream-Status: Pending
diff --git a/src/appspawn_server.cpp b/src/appspawn_server.cpp
index 54f66450b81e..707aed8c924e 100644
--- a/src/appspawn_server.cpp
+++ b/src/appspawn_server.cpp
@@ -514,7 +514,7 @@ int32_t AppSpawnServer::SetProcessName(
}
// set long process name
- if (strncpy_s(longProcName, len, processName, len) != EOK) {
+ if (strncpy_s(longProcName, longProcNameLen, processName, len) != EOK) {
HiLog::Error(LABEL, "strncpy_s long name error: %{public}d", errno);
return -EINVAL;
}
......@@ -22,6 +22,8 @@ require musl-ldso-paths-sanity-check.inc
FILESEXTRAPATHS:prepend := "${THISDIR}/openharmony-${OPENHARMONY_VERSION}:"
FILESEXTRAPATHS:prepend := "${THISDIR}/openharmony-standard-${OPENHARMONY_VERSION}:"
SRC_URI += "${@bb.utils.contains('PTEST_ENABLED', '1', 'file://run-ptest', '', d)}"
# TODO: we probably want these
SRC_URI += "file://hilog-Add-tests.patch"
......@@ -32,23 +34,6 @@ SRC_URI += "file://flexlexer.patch;patchdir=${S}/base/update/updater"
SRC_URI += "file://jsframwork-use-yocto-node.patch;patchdir=${S}/third_party/jsframework"
SRC_URI += "file://ts2abc-don-t-set-node_path-for-Linux-host-toolchain.patch;patchdir=${S}/ark/ts2abc"
# Should be covered by Oniro prebuilts
# TODO: Cleanup prebuilts recipe with these component specific patches instead
# of adding arguments in toolchain definition.
#SRC_URI += "file://toolchain-compiler-path.patch;patchdir=${S}/build"
#SRC_URI += "file://ark-runtime_core-compiler-option.patch;patchdir=${S}/ark/runtime_core"
#SRC_URI += "file://ark-runtime_core-libpandabase.patch;patchdir=${S}/ark/runtime_core"
#SRC_URI += "file://libweston_config-Add-Wno-unused-but-set-variable-com.patch;patchdir=${S}/third_party/weston"
#SRC_URI += "file://libunwind-compiler-option.patch;patchdir=${S}/third_party/libunwind"
#SRC_URI += "file://protobuf-compiler-option.patch;patchdir=${S}/third_party/protobuf"
#SRC_URI += "file://multimedia-audio-compiler-option.patch;patchdir=${S}/foundation/multimedia/audio_standard"
#SRC_URI += "file://quickjs-compiler-option.patch;patchdir=${S}/third_party/quickjs"
#SRC_URI += "file://ace_engine-clang-config.patch;patchdir=${S}/foundation/ace/ace_engine"
#SRC_URI += "file://icu-compile-option.patch;patchdir=${S}/third_party/icu"
#SRC_URI += "file://ark-js_runtime-compile-option.patch;patchdir=${S}/ark/js_runtime"
#SRC_URI += "file://ts2abc_host-toolchain.patch;patchdir=${S}/ark/ts2abc"
#SRC_URI += "file://hc-gen-compiler.patch;patchdir=${S}/drivers/framework"
SRC_URI += "file://hdc-build-system-files.patch;patchdir=${S}/developtools/hdc_standard"
SRC_URI += "file://vendor-qemu-uhdf-files.patch;patchdir=${S}/drivers/peripheral"
......@@ -64,6 +49,10 @@ SRC_URI += "file://xf86drm.c-Add-drmWaitVBlank-hack.patch;patchdir=${S}/third_pa
SRC_URI += "file://graphic-standard-Add-missing-entry-for-libwms_client.patch;patchdir=${S}/foundation/graphic/standard"
SRC_URI += "file://appspawn-procps.patch;patchdir=${S}/base/startup/appspawn_standard"
SRC_URI += "file://base_startup_appspawn_standard-app-spawn-server-override-007-fix.patch;patchdir=${S}/base/startup/appspawn_standard"
SRC_URI += "file://base_startup_appspawn_standard-setprocessname-buffer-overflow.patch;patchdir=${S}/base/startup/appspawn_standard"
inherit python3native gn_base ptest
B = "${S}/out/ohos-arm-release"
......@@ -216,6 +205,8 @@ do_install_ptest () {
do
install -D -m 755 "${B}/tests/$f" "${D}${PTEST_PATH}/$f"
done
# undo the default installation of ptest done by ptest.bbclass
rm -f ${D}${PTEST_PATH}/run-ptest
}
generate_platforms_build_file() {
......@@ -326,22 +317,24 @@ RDEPENDS:${PN} += "${PN}-libutilsecurec ${PN}-libutils"
inherit systemd
SYSTEMD_AUTO_ENABLE = "enable"
# //base/hiviewdfx/hilog component
PACKAGES =+ "${PN}-hilog ${PN}-hilog-ptest"
SYSTEMD_PACKAGES = "${PN}-hilog"
SYSTEMD_SERVICE:${PN}-hilog = "hilogd.service"
SRC_URI += "file://hilogd.service"
SRC_URI += "${@bb.utils.contains('PTEST_ENABLED', '1', 'file://hilog.run-ptest', '', d)}"
do_install:append() {
install -d ${D}/${systemd_unitdir}/system
install -m 644 ${WORKDIR}/hilogd.service ${D}${systemd_unitdir}/system/
rm -f ${D}${sysconfdir}/init/hilogd.cfg
rm -f ${D}${sysconfdir}/openharmony/init/hilogd.cfg
install -d ${D}${sysconfdir}/sysctl.d
echo "net.unix.max_dgram_qlen=600" > ${D}${sysconfdir}/sysctl.d/hilogd.conf
}
do_install_ptest_base[cleandirs] += "${D}${libdir}/${BPN}-hilog/ptest"
do_install_ptest:append() {
install -D ${WORKDIR}/hilog.run-ptest ${D}${libdir}/${BPN}-hilog/ptest/run-ptest
mv ${D}${PTEST_PATH}/moduletest/hiviewdfx/hilog/* ${D}${libdir}/${BPN}-hilog/ptest/
rmdir ${D}${PTEST_PATH}/moduletest/hiviewdfx/hilog
install -D ${WORKDIR}/run-ptest ${D}${libdir}/${BPN}-hilog/ptest/run-ptest
mv ${D}${PTEST_PATH}/moduletest/hiviewdfx/hilog ${D}${libdir}/${BPN}-hilog/ptest/moduletest
rmdir ${D}${PTEST_PATH}/moduletest/hiviewdfx
echo "hilogd.service" > ${D}${libdir}/${BPN}-hilog/ptest/systemd-units
}
FILES:${PN}-hilog = "\
${bindir}/hilog* \
......@@ -350,12 +343,59 @@ FILES:${PN}-hilog = "\
${systemd_unitdir}/hilogd.service \
"
FILES:${PN}-hilog-ptest = "${libdir}/${BPN}-hilog/ptest"
RDEPENDS:${PN}-hilog += "musl libcxx ${PN}-libutilsecurec"
RDEPENDS:${PN}-hilog-ptest += "${PN}-hilog musl libcxx"
RDEPENDS:${PN} += "${PN}-hilog"
RDEPENDS:${PN}-ptest += "${PN}-hilog-ptest ${PN}-hilog"
RDEPENDS:${PN}-hilog-ptest += "${PN}-hilog"
RDEPENDS:${PN}-hilog += "musl libcxx"
RDEPENDS:${PN}-hilog-ptest += "musl libcxx"
RDEPENDS:${PN}-hilog += "${PN}-libutilsecurec"
# //base/startup/appspawn_standard component
PACKAGES =+ "${PN}-appspawn ${PN}-appspawn-ptest"
SYSTEMD_PACKAGES += "${PN}-appspawn"
SYSTEMD_SERVICE:${PN}-appspawn = "appspawn.service"
SRC_URI += "file://appspawn.service"
do_install:append() {
install -d ${D}/${systemd_unitdir}/system
install -m 644 ${WORKDIR}/appspawn.service ${D}${systemd_unitdir}/system/
rm -f ${D}${sysconfdir}/openharmony/init/appspawn.cfg
}
do_install_ptest_base[cleandirs] += "${D}${libdir}/${BPN}-appspawn/ptest"
do_install_ptest:append() {
install -D ${WORKDIR}/run-ptest ${D}${libdir}/${BPN}-appspawn/ptest/run-ptest
mv ${D}${PTEST_PATH}/moduletest/startup_l2/appspawn_l2 ${D}${libdir}/${BPN}-appspawn/ptest/moduletest
mv ${D}${PTEST_PATH}/unittest/startup_l2/appspawn_l2 ${D}${libdir}/${BPN}-appspawn/ptest/unittest
rmdir ${D}${PTEST_PATH}/*/startup_l2
echo "appspawn.service" > ${D}${libdir}/${BPN}-appspawn/ptest/systemd-units
}
OPENHARMONY_PTEST_IS_BROKEN += "appspawn"
FILES:${PN}-appspawn = "\
${bindir}/appspawn* \
${libdir}/libappspawn* \
${systemd_unitdir}/appspawnd.service \
"
FILES:${PN}-appspawn-ptest = "${libdir}/${BPN}-appspawn/ptest"
RDEPENDS:${PN} += "${PN}-appspawn"
RDEPENDS:${PN}-ptest += "${PN}-appspawn-ptest ${PN}-appspawn"
RDEPENDS:${PN}-appspawn-ptest += "${PN}-appspawn"
RDEPENDS:${PN}-appspawn += "musl libcxx"
RDEPENDS:${PN}-appspawn-ptest += "musl libcxx"
RDEPENDS:${PN}-appspawn += "${PN}-libutils ${PN}-hilog"
RDEPENDS:${PN}-appspawn-ptest += "${PN}-libutils ${PN}-hilog"
# TODO: remove when needed parts are split out
RDEPENDS:${PN}-appspawn += "${PN}"
RDEPENDS:${PN}-appspawn-ptest += "${PN}"
# Disable all ptest suites that are know to not work for now. When the x-bit is
# not set, the ptest is visible (using `ptest-runner -l`), but no test cases
# will be run when executing it.
# TODO: Fix all components and tests and remove all of this
do_install_ptest:append() {
for component in ${OPENHARMONY_PTEST_IS_BROKEN} ; do
chmod -x ${D}${libdir}/${BPN}-$component/ptest/run-ptest
done
}
INSANE_SKIP:${PN} = "already-stripped"
EXCLUDE_FROM_SHLIBS = "1"
# To avoid excessive diskspace blowup, we are stripping our executables
......
......@@ -78,6 +78,8 @@ SRC_URI += "file://foundation_distributedschedule_safwk-slash-system-symlink.pat
SRC_URI += "file://foundation_distributedschedule_samgr-slash-system-symlink.patch;patchdir=${S}/foundation/distributedschedule/samgr"
SRC_URI += "file://appspawn-procps.patch;patchdir=${S}/base/startup/appspawn_standard"
SRC_URI += "file://base_startup_appspawn_standard-app-spawn-server-override-007-fix.patch;patchdir=${S}/base/startup/appspawn_standard"
SRC_URI += "file://base_startup_appspawn_standard-setprocessname-buffer-overflow.patch;patchdir=${S}/base/startup/appspawn_standard"
# Workaround for problem with nodejs 17:
# error:0308010C:digital envelope routines::unsupported
......@@ -553,7 +555,7 @@ do_install_ptest:append() {
rmdir ${D}${PTEST_PATH}/*/appspawn
echo "appspawn.service" > ${D}${libdir}/${BPN}-appspawn/ptest/systemd-units
}
OPENHARMONY_PTEST_IS_BROKEN = "appspawn"
OPENHARMONY_PTEST_IS_BROKEN += "appspawn"
FILES:${PN}-appspawn = "\
${bindir}/appspawn* \
${libdir}/libappspawn* \
......@@ -580,7 +582,7 @@ do_install_ptest:append() {
mv ${D}${PTEST_PATH}/unittest/appexecfwk_standard ${D}${libdir}/${BPN}-appexecfwk/ptest/unittest
mv ${D}${PTEST_PATH}/systemtest/appexecfwk_standard ${D}${libdir}/${BPN}-appexecfwk/ptest/systemtest
}
OPENHARMONY_PTEST_IS_BROKEN = "appexecfwk"
OPENHARMONY_PTEST_IS_BROKEN += "appexecfwk"
FILES:${PN}-appexecfwk = "\
${libdir}/libappexecfwk*${SOLIBS} \
"
......@@ -612,7 +614,7 @@ do_install_ptest:append() {
rmdir ${D}${PTEST_PATH}/unittest/samgr_standard
echo "samgr.service" > ${D}${libdir}/${BPN}-samgr/ptest/systemd-units
}
OPENHARMONY_PTEST_IS_BROKEN = "samgr"
OPENHARMONY_PTEST_IS_BROKEN += "samgr"
FILES:${PN}-samgr = "\
${bindir}/samgr \
${libdir}/libsamgr*${SOLIBS} \
......@@ -637,7 +639,7 @@ do_install_ptest:append() {
mv ${D}${PTEST_PATH}/unittest/safwk/safwk ${D}${libdir}/${BPN}-safwk/ptest/unittest
rmdir ${D}${PTEST_PATH}/unittest/safwk
}
OPENHARMONY_PTEST_IS_BROKEN = "safwk"
OPENHARMONY_PTEST_IS_BROKEN += "safwk"
FILES:${PN}-safwk = "\
${libdir}/libsystem_ability_fwk*${SOLIBS} \
"
......@@ -657,7 +659,7 @@ do_install_ptest:append() {
mv ${D}${PTEST_PATH}/unittest/ipc ${D}${libdir}/${BPN}-ipc/ptest/unittest
mv ${D}${PTEST_PATH}/moduletest/ipc ${D}${libdir}/${BPN}-ipc/ptest/moduletest
}
OPENHARMONY_PTEST_IS_BROKEN = "ipc"
OPENHARMONY_PTEST_IS_BROKEN += "ipc"
FILES:${PN}-ipc = "\
${libdir}/libipc*${SOLIBS} \
${libdir}/librpc*${SOLIBS} \
......@@ -679,7 +681,7 @@ do_install_ptest:append() {
mv ${D}${PTEST_PATH}/unittest/device_manager_base/component_loader_test ${D}${libdir}/${BPN}-devicemanager/ptest/unittest
rmdir ${D}${PTEST_PATH}/unittest/device_manager_base
}
OPENHARMONY_PTEST_IS_BROKEN = "devicemanager"
OPENHARMONY_PTEST_IS_BROKEN += "devicemanager"
FILES:${PN}-devicemanager = "\
${libdir}/libdevicemanager*${SOLIBS} \
${libdir}/module/distributedhardware/libdevicemanager*${SOLIBS} \
......@@ -717,7 +719,7 @@ do_install_ptest:append() {
echo "accesstoken.service" > ${D}${libdir}/${BPN}-accesstoken/ptest/systemd-units
echo "tokensync.service" >> ${D}${libdir}/${BPN}-accesstoken/ptest/systemd-units
}
OPENHARMONY_PTEST_IS_BROKEN = "accesstoken"
OPENHARMONY_PTEST_IS_BROKEN += "accesstoken"
FILES:${PN}-accesstoken = "\
${libdir}/libaccesstoken*${SOLIBS} \
${libdir}/libtoken*sync*${SOLIBS} \
......@@ -752,7 +754,7 @@ do_install_ptest:append() {
mv ${D}${PTEST_PATH}/unittest/dsoftbus_standard ${D}${libdir}/${BPN}-dsoftbus/ptest/unittest
echo "dsoftbus.service" > ${D}${libdir}/${BPN}-dsoftbus/ptest/systemd-units
}
OPENHARMONY_PTEST_IS_BROKEN = "dsoftbus"
OPENHARMONY_PTEST_IS_BROKEN += "dsoftbus"
FILES:${PN}-dsoftbus = "\
${libdir}/libsoftbus*${SOLIBS} \
${sysconfdir}/openharmony/communication/softbus \
......@@ -821,7 +823,6 @@ RDEPENDS:${PN}-hitrace += "${PN}"
# not set, the ptest is visible (using `ptest-runner -l`), but no test cases
# will be run when executing it.
# TODO: Fix all components and tests and remove all of this
OPENHARMONY_PTEST_IS_BROKEN = "accesstoken appexecfwk appspawn devicemanager dsoftbus ipc safwk samgr"
do_install_ptest:append() {
for component in ${OPENHARMONY_PTEST_IS_BROKEN} ; do
chmod -x ${D}${libdir}/${BPN}-$component/ptest/run-ptest
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment