summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMingli Yu <mingli.yu@windriver.com>2024-09-29 16:11:12 +0800
committerKhem Raj <raj.khem@gmail.com>2024-09-29 10:01:08 -0700
commitc0095bd11888d2d6e132d7202d8204e52130e8f4 (patch)
tree85f865a16f4f481cf23f4fdf00e2d970e43974c7
parentd91297efeebb5731d15179c0541e336cfe3edf71 (diff)
downloadmeta-openembedded-c0095bd11888d2d6e132d7202d8204e52130e8f4.tar.gz
rocksdb: Add ptest support
# ./run-ptest PASS: agg_merge_test PASS: cache_test PASS: db_basic_test PASS: env_basic_test PASS: testutil_test Signed-off-by: Mingli Yu <mingli.yu@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--meta-oe/conf/include/ptest-packagelists-meta-oe.inc1
-rw-r--r--meta-oe/recipes-dbs/rocksdb/files/0001-CMakeLists.txt-Make-the-test-discovery-occur-on-targ.patch42
-rw-r--r--meta-oe/recipes-dbs/rocksdb/files/run-ptest12
-rw-r--r--meta-oe/recipes-dbs/rocksdb/rocksdb_9.0.0.bb21
4 files changed, 74 insertions, 2 deletions
diff --git a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
index 0ea43f597..f20eff219 100644
--- a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
+++ b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
@@ -55,6 +55,7 @@ PTESTS_SLOW_META_OE = "\
55 fftw \ 55 fftw \
56 libusb-compat \ 56 libusb-compat \
57 rsyslog \ 57 rsyslog \
58 rocksdb \
58 mariadb \ 59 mariadb \
59 poco \ 60 poco \
60 re2 \ 61 re2 \
diff --git a/meta-oe/recipes-dbs/rocksdb/files/0001-CMakeLists.txt-Make-the-test-discovery-occur-on-targ.patch b/meta-oe/recipes-dbs/rocksdb/files/0001-CMakeLists.txt-Make-the-test-discovery-occur-on-targ.patch
new file mode 100644
index 000000000..b0a949fe3
--- /dev/null
+++ b/meta-oe/recipes-dbs/rocksdb/files/0001-CMakeLists.txt-Make-the-test-discovery-occur-on-targ.patch
@@ -0,0 +1,42 @@
1From 9abf6cd09c60f0be9a85c055dfdf43698f057f73 Mon Sep 17 00:00:00 2001
2From: Mingli Yu <mingli.yu@windriver.com>
3Date: Wed, 25 Sep 2024 13:47:37 +0800
4Subject: [PATCH] CMakeLists.txt: Make the test discovery occur on target
5
6Set DISCOVERY_MODE to PRE_TEST to delay test discovery until just
7prior to test execution on the target to fix the build failure as
8the default POST_BUILD behavior is not desirable in cross-compiling
9env.
10
11/build/tmp/work/core2-64-wrs-linux/rocksdb/9.0.0/build/env_basic_test: error while loading shared libraries: libgflags.so.2.2: cannot open shared object file: No such file or directory
12CMake Error at /build/tmp/work/core2-64-wrs-linux/rocksdb/9.0.0/recipe-sysroot-native/usr/share/cmake-3.30/Modules/GoogleTestAddTests.cmake:112 (message):
13 Error running test executable.
14
15 Path: '/build/tmp/work/core2-64-wrs-linux/rocksdb/9.0.0/build/env_basic_test'
16 Working directory: '/build/tmp/work/core2-64-wrs-linux/rocksdb/9.0.0/build'
17 Result: 127
18 Output:
19
20Upstream-Status: Inappropriate [oe specific]
21
22Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
23---
24 CMakeLists.txt | 2 +-
25 1 file changed, 1 insertion(+), 1 deletion(-)
26
27diff --git a/CMakeLists.txt b/CMakeLists.txt
28index 403ad1243..f34397798 100644
29--- a/CMakeLists.txt
30+++ b/CMakeLists.txt
31@@ -1502,7 +1502,7 @@ if(WITH_TESTS)
32 )
33 target_link_libraries(${exename}${ARTIFACT_SUFFIX} testutillib${ARTIFACT_SUFFIX} testharness gtest ${THIRDPARTY_LIBS} ${ROCKSDB_LIB})
34 if(NOT "${exename}" MATCHES "db_sanity_test")
35- gtest_discover_tests(${exename} DISCOVERY_TIMEOUT 120)
36+ gtest_discover_tests(${exename} DISCOVERY_TIMEOUT 120 DISCOVERY_MODE PRE_TEST)
37 add_dependencies(rocksdb_check ${exename}${ARTIFACT_SUFFIX})
38 endif()
39 endforeach(sourcefile ${TESTS})
40--
412.34.1
42
diff --git a/meta-oe/recipes-dbs/rocksdb/files/run-ptest b/meta-oe/recipes-dbs/rocksdb/files/run-ptest
new file mode 100644
index 000000000..45406fdfa
--- /dev/null
+++ b/meta-oe/recipes-dbs/rocksdb/files/run-ptest
@@ -0,0 +1,12 @@
1#!/bin/sh
2ptestdir=$(dirname "$(readlink -f "$0")")
3cd "$ptestdir"/tests || exit
4
5for test in *_test; do
6 if ./${test} >/dev/null 2>&1; then
7 echo "PASS: ${test}"
8 else
9 echo "FAIL: ${test}"
10 fi
11done
12
diff --git a/meta-oe/recipes-dbs/rocksdb/rocksdb_9.0.0.bb b/meta-oe/recipes-dbs/rocksdb/rocksdb_9.0.0.bb
index fae54fdba..57d163bfc 100644
--- a/meta-oe/recipes-dbs/rocksdb/rocksdb_9.0.0.bb
+++ b/meta-oe/recipes-dbs/rocksdb/rocksdb_9.0.0.bb
@@ -18,6 +18,8 @@ SRC_URI = "git://github.com/facebook/${BPN}.git;branch=${SRCBRANCH};protocol=htt
18 file://0006-Implement-timer-for-arm-v6.patch \ 18 file://0006-Implement-timer-for-arm-v6.patch \
19 file://0007-Fix-declaration-scope-of-LE_LOAD32-in-crc32c.patch \ 19 file://0007-Fix-declaration-scope-of-LE_LOAD32-in-crc32c.patch \
20 file://static_library_as_option.patch \ 20 file://static_library_as_option.patch \
21 file://0001-CMakeLists.txt-Make-the-test-discovery-occur-on-targ.patch \
22 file://run-ptest \
21 " 23 "
22 24
23SRC_URI:append:riscv32 = " file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch" 25SRC_URI:append:riscv32 = " file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch"
@@ -27,7 +29,7 @@ SRC_URI:remove:toolchain-clang:riscv32 = "file://0001-replace-old-sync-with-new-
27 29
28S = "${WORKDIR}/git" 30S = "${WORKDIR}/git"
29 31
30inherit cmake 32inherit cmake ptest
31 33
32PACKAGECONFIG ??= "bzip2 zlib lz4 gflags" 34PACKAGECONFIG ??= "bzip2 zlib lz4 gflags"
33PACKAGECONFIG[bzip2] = "-DWITH_BZ2=ON,-DWITH_BZ2=OFF,bzip2" 35PACKAGECONFIG[bzip2] = "-DWITH_BZ2=ON,-DWITH_BZ2=OFF,bzip2"
@@ -40,7 +42,7 @@ PACKAGECONFIG[gflags] = "-DWITH_GFLAGS=ON,-DWITH_GFLAGS=OFF,gflags"
40# Tools and tests currently don't compile on armv5 so we disable them 42# Tools and tests currently don't compile on armv5 so we disable them
41EXTRA_OECMAKE = "\ 43EXTRA_OECMAKE = "\
42 -DPORTABLE=ON \ 44 -DPORTABLE=ON \
43 -DWITH_TESTS=OFF \ 45 -DWITH_TESTS=${@bb.utils.contains("DISTRO_FEATURES", "ptest", "ON", "OFF", d)} \
44 -DWITH_BENCHMARK_TOOLS=OFF \ 46 -DWITH_BENCHMARK_TOOLS=OFF \
45 -DWITH_TOOLS=OFF \ 47 -DWITH_TOOLS=OFF \
46 -DFAIL_ON_WARNINGS=OFF \ 48 -DFAIL_ON_WARNINGS=OFF \
@@ -54,6 +56,21 @@ do_install:append() {
54 sed -i "s#${RECIPE_SYSROOT}##g" ${D}${libdir}/cmake/rocksdb/RocksDBTargets.cmake 56 sed -i "s#${RECIPE_SYSROOT}##g" ${D}${libdir}/cmake/rocksdb/RocksDBTargets.cmake
55} 57}
56 58
59do_install_ptest() {
60 install -d ${D}${PTEST_PATH}/tests
61 # only cover the basic test as all the tests need to take about 6 hours
62 # time ./run-ptest
63 # real 356m32.956s
64 # user 252m32.004s
65 # sys 178m50.246s
66 install -m 0755 ${B}/env_basic_test ${D}${PTEST_PATH}/tests/
67 install -m 0755 ${B}/db_basic_test ${D}${PTEST_PATH}/tests/
68 install -m 0755 ${B}/agg_merge_test ${D}${PTEST_PATH}/tests/
69 install -m 0755 ${B}/testutil_test ${D}${PTEST_PATH}/tests/
70 install -m 0755 ${B}/cache_test ${D}${PTEST_PATH}/tests/
71}
72
57# Need toku_time_now() implemented for ppc/musl 73# Need toku_time_now() implemented for ppc/musl
58# see utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h 74# see utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h
59COMPATIBLE_HOST:libc-musl:powerpc = "null" 75COMPATIBLE_HOST:libc-musl:powerpc = "null"
76COMPATIBLE_HOST:armv5 = 'null'