This is an automated email from the ASF dual-hosted git repository. dataroaring pushed a commit to branch branch-3.0 in repository https://gitbox.apache.org/repos/asf/doris.git
commit e701c2031ad9ca6f2c945f98e52879b811fbd64e Author: Mryange <[email protected]> AuthorDate: Fri Jun 14 14:14:19 2024 +0800 [env](test) add ubsan content to the compilation options in asan (#36195) --- be/CMakeLists.txt | 8 ++- .../query_p0/aggregate/group_array_intersect.out | 18 +++---- .../aggregate/group_array_intersect.groovy | 58 +++++++++++----------- run-be-ut.sh | 8 ++- 4 files changed, 51 insertions(+), 41 deletions(-) diff --git a/be/CMakeLists.txt b/be/CMakeLists.txt index 929483d08b2..ade1fd4fc52 100644 --- a/be/CMakeLists.txt +++ b/be/CMakeLists.txt @@ -382,8 +382,10 @@ endif() # -O3: Enable all compiler optimizations # -DNDEBUG: Turn off dchecks/asserts/debug only code. set(CXX_FLAGS_RELEASE "${CXX_GCC_FLAGS} -O3 -DNDEBUG") -set(CXX_FLAGS_ASAN "${CXX_GCC_FLAGS} -O0 -fsanitize=address -DADDRESS_SANITIZER") +set(CXX_FLAGS_ASAN "${CXX_GCC_FLAGS} -O0 -fsanitize=address -fsanitize=undefined -fno-strict-aliasing -fno-sanitize=alignment,signed-integer-overflow,float-cast-overflow -DUNDEFINED_BEHAVIOR_SANITIZER -DADDRESS_SANITIZER") set(CXX_FLAGS_LSAN "${CXX_GCC_FLAGS} -O0 -fsanitize=leak -DLEAK_SANITIZER") +## Use for BE-UT +set(CXX_FLAGS_ASAN_UT "${CXX_GCC_FLAGS} -O0 -fsanitize=address -DADDRESS_SANITIZER") # Set the flags to the undefined behavior sanitizer, also known as "ubsan" # Turn on sanitizer and debug symbols to get stack traces: @@ -408,6 +410,8 @@ elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "UBSAN") set(CMAKE_CXX_FLAGS "${CXX_FLAGS_UBSAN}") elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "TSAN") set(CMAKE_CXX_FLAGS "${CXX_FLAGS_TSAN}") +elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "ASAN_UT") + set(CMAKE_CXX_FLAGS "${CXX_FLAGS_ASAN_UT}") else() message(FATAL_ERROR "Unknown build type: ${CMAKE_BUILD_TYPE}") endif() @@ -629,7 +633,7 @@ endif () # Add sanitize static link flags if ("${CMAKE_BUILD_TYPE}" STREQUAL "DEBUG" OR "${CMAKE_BUILD_TYPE}" STREQUAL "RELEASE") set(DORIS_LINK_LIBS ${DORIS_LINK_LIBS} ${MALLOCLIB}) -elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "ASAN") +elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "ASAN" OR "${CMAKE_BUILD_TYPE}" STREQUAL "ASAN_UT") set(DORIS_LINK_LIBS ${DORIS_LINK_LIBS} ${ASAN_LIBS}) elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "LSAN") set(DORIS_LINK_LIBS ${DORIS_LINK_LIBS} ${LSAN_LIBS}) diff --git a/regression-test/data/query_p0/aggregate/group_array_intersect.out b/regression-test/data/query_p0/aggregate/group_array_intersect.out index e9e0efec5dc..c58ede1043e 100644 --- a/regression-test/data/query_p0/aggregate/group_array_intersect.out +++ b/regression-test/data/query_p0/aggregate/group_array_intersect.out @@ -3,7 +3,7 @@ [null] -- !int_2 -- -[13, 12] +[12, 13] -- !int_3 -- [] @@ -12,13 +12,13 @@ [null] -- !int_5 -- -[7, 6] +[6, 7] -- !int_6 -- [null] -- !int_7 -- -[null, 13, 12] +[null, 12, 13] -- !int_8 -- [] @@ -61,17 +61,17 @@ -- !groupby_1 -- 0 [0] -1 [4, 1, 5, 2, 3] +1 [1, 2, 3, 4, 5] -- !groupby_2 -- -18 ["c", "e", "b", "d", "a", "f"] -19 ["c", "ff", "cc", "bb", "f", "aa", "dd", "b", "d", "a"] +18 ["a", "b", "c", "d", "e", "f"] +19 ["a", "aa", "b", "bb", "c", "cc", "d", "dd", "f", "ff"] 20 [null, "a"] 21 [null] 22 ["x", "y"] -- !groupby_3 -- -18 ["c", "e", "b", "d", "a", "f"] +18 ["a", "b", "c", "d", "e", "f"] -- !notnull_1 -- [] @@ -80,10 +80,10 @@ [] [] -- !notnull_3 -- -[7.7, 6.6] +[6.6, 7.7] -- !notnull_4 -- -["c", "b", "d", "a", "f"] +["a", "b", "c", "d", "f"] -- !notnull_5 -- [] [] [] diff --git a/regression-test/suites/query_p0/aggregate/group_array_intersect.groovy b/regression-test/suites/query_p0/aggregate/group_array_intersect.groovy index a802d42a66a..8e0ecbe3c21 100644 --- a/regression-test/suites/query_p0/aggregate/group_array_intersect.groovy +++ b/regression-test/suites/query_p0/aggregate/group_array_intersect.groovy @@ -48,29 +48,29 @@ suite("group_array_intersect") { sql """INSERT INTO `group_array_intersect_test`(id, c_array_bigint) VALUES (23, [1234567890123456]), (24, [1234567890123456, 2333333333333333]);""" sql """INSERT INTO `group_array_intersect_test`(id, c_array_decimal) VALUES (25, [1.34,2.00188888888888888]), (26, [1.34,2.00123344444455555]);""" - qt_int_1 """select group_array_intersect(c_array_int) from group_array_intersect_test where id in (6, 12);""" - qt_int_2 """select group_array_intersect(c_array_int) from group_array_intersect_test where id in (14, 12);""" - qt_int_3 """select group_array_intersect(c_array_int) from group_array_intersect_test where id in (0, 6);""" - qt_int_4 """select group_array_intersect(c_array_int) from group_array_intersect_test where id in (13);""" - qt_int_5 """select group_array_intersect(c_array_int) from group_array_intersect_test where id in (2, 5);""" - qt_int_6 """select group_array_intersect(c_array_int) from group_array_intersect_test where id in (6, 13);""" - qt_int_7 """select group_array_intersect(c_array_int) from group_array_intersect_test where id in (12);""" - qt_int_8 """select group_array_intersect(c_array_int) from group_array_intersect_test where id in (6, 7);""" - qt_int_9 """select group_array_intersect(c_array_int) from group_array_intersect_test where id in (9, 12);""" - qt_float_1 """select group_array_intersect(c_array_float) from group_array_intersect_test where id = 7;""" - qt_float_2 """select group_array_intersect(c_array_float) from group_array_intersect_test where id between 7 and 8;""" - qt_float_3 """select group_array_intersect(c_array_float) from group_array_intersect_test where id in (7, 9);""" - qt_datetimev2_1 """select group_array_intersect(c_array_datetimev2) from group_array_intersect_test;""" - qt_datetimev2_2 """select group_array_intersect(c_array_datetimev2) from group_array_intersect_test where id in (10, 11);""" - qt_datev2_1 """select group_array_intersect(c_array_datev2) from group_array_intersect_test where id in (15, 16);""" - qt_datev2_2 """select group_array_intersect(c_array_datev2) from group_array_intersect_test where id in (15, 17);""" - qt_string_1 """select group_array_intersect(c_array_string) from group_array_intersect_test where id in (17, 20);""" - qt_string_2 """select group_array_intersect(c_array_string) from group_array_intersect_test where id in (18, 20);""" - qt_bigint """select group_array_intersect(c_array_bigint) from group_array_intersect_test where id in (23, 24);""" - qt_decimal """select group_array_intersect(c_array_decimal) from group_array_intersect_test where id in (25, 26);""" - qt_groupby_1 """select id, group_array_intersect(c_array_int) from group_array_intersect_test where id <= 1 group by id order by id;""" - qt_groupby_2 """select id, group_array_intersect(c_array_string) from group_array_intersect_test where c_array_string is not null group by id order by id;""" - qt_groupby_3 """select id, group_array_intersect(c_array_string) from group_array_intersect_test where id = 18 group by id order by id;""" + qt_int_1 """select array_sort(group_array_intersect(c_array_int)) from group_array_intersect_test where id in (6, 12);""" + qt_int_2 """select array_sort(group_array_intersect(c_array_int)) from group_array_intersect_test where id in (14, 12);""" + qt_int_3 """select array_sort(group_array_intersect(c_array_int)) from group_array_intersect_test where id in (0, 6);""" + qt_int_4 """select array_sort(group_array_intersect(c_array_int)) from group_array_intersect_test where id in (13);""" + qt_int_5 """select array_sort(group_array_intersect(c_array_int)) from group_array_intersect_test where id in (2, 5);""" + qt_int_6 """select array_sort(group_array_intersect(c_array_int)) from group_array_intersect_test where id in (6, 13);""" + qt_int_7 """select array_sort(group_array_intersect(c_array_int)) from group_array_intersect_test where id in (12);""" + qt_int_8 """select array_sort(group_array_intersect(c_array_int)) from group_array_intersect_test where id in (6, 7);""" + qt_int_9 """select array_sort(group_array_intersect(c_array_int)) from group_array_intersect_test where id in (9, 12);""" + qt_float_1 """select array_sort(group_array_intersect(c_array_float)) from group_array_intersect_test where id = 7;""" + qt_float_2 """select array_sort(group_array_intersect(c_array_float)) from group_array_intersect_test where id between 7 and 8;""" + qt_float_3 """select array_sort(group_array_intersect(c_array_float)) from group_array_intersect_test where id in (7, 9);""" + qt_datetimev2_1 """select array_sort(group_array_intersect(c_array_datetimev2)) from group_array_intersect_test;""" + qt_datetimev2_2 """select array_sort(group_array_intersect(c_array_datetimev2)) from group_array_intersect_test where id in (10, 11);""" + qt_datev2_1 """select array_sort(group_array_intersect(c_array_datev2)) from group_array_intersect_test where id in (15, 16);""" + qt_datev2_2 """select array_sort(group_array_intersect(c_array_datev2)) from group_array_intersect_test where id in (15, 17);""" + qt_string_1 """select array_sort(group_array_intersect(c_array_string)) from group_array_intersect_test where id in (17, 20);""" + qt_string_2 """select array_sort(group_array_intersect(c_array_string)) from group_array_intersect_test where id in (18, 20);""" + qt_bigint """select array_sort(group_array_intersect(c_array_bigint)) from group_array_intersect_test where id in (23, 24);""" + qt_decimal """select array_sort(group_array_intersect(c_array_decimal)) from group_array_intersect_test where id in (25, 26);""" + qt_groupby_1 """select id, array_sort(group_array_intersect(c_array_int)) from group_array_intersect_test where id <= 1 group by id order by id;""" + qt_groupby_2 """select id, array_sort(group_array_intersect(c_array_string)) from group_array_intersect_test where c_array_string is not null group by id order by id;""" + qt_groupby_3 """select id, array_sort(group_array_intersect(c_array_string)) from group_array_intersect_test where id = 18 group by id order by id;""" sql "DROP TABLE IF EXISTS `group_array_intersect_test_not_null`;" @@ -97,10 +97,10 @@ suite("group_array_intersect") { sql """INSERT INTO `group_array_intersect_test_not_null`(id, c_array_int, c_array_float, c_array_string) VALUES (4, [6, 7], [6.6, 7.7], ['a']);""" sql """INSERT INTO `group_array_intersect_test_not_null`(id, c_array_int, c_array_float, c_array_string) VALUES (5, [null], [null], ['x', 'y']);""" - qt_notnull_1 """select group_array_intersect(c_array_float) from group_array_intersect_test_not_null where array_size(c_array_float) between 1 and 2;""" - qt_notnull_2 """select group_array_intersect(c_array_int), group_array_intersect(c_array_float) from group_array_intersect_test_not_null where id between 2 and 3;""" - qt_notnull_3 """select group_array_intersect(c_array_float) from group_array_intersect_test_not_null where array_size(c_array_float) between 2 and 3;""" - qt_notnull_4 """select group_array_intersect(c_array_string) from group_array_intersect_test_not_null where id between 1 and 2;""" - qt_notnull_5 """select group_array_intersect(c_array_int), group_array_intersect(c_array_float), group_array_intersect(c_array_string) from group_array_intersect_test_not_null where id between 3 and 4;""" - qt_notnull_6 """select group_array_intersect(c_array_string) from group_array_intersect_test_not_null where id between 1 and 5;""" + qt_notnull_1 """select array_sort(group_array_intersect(c_array_float)) from group_array_intersect_test_not_null where array_size(c_array_float) between 1 and 2;""" + qt_notnull_2 """select array_sort(group_array_intersect(c_array_int)), array_sort(group_array_intersect(c_array_float)) from group_array_intersect_test_not_null where id between 2 and 3;""" + qt_notnull_3 """select array_sort(group_array_intersect(c_array_float)) from group_array_intersect_test_not_null where array_size(c_array_float) between 2 and 3;""" + qt_notnull_4 """select array_sort(group_array_intersect(c_array_string)) from group_array_intersect_test_not_null where id between 1 and 2;""" + qt_notnull_5 """select array_sort(group_array_intersect(c_array_int)), array_sort(group_array_intersect(c_array_float)), array_sort(group_array_intersect(c_array_string)) from group_array_intersect_test_not_null where id between 3 and 4;""" + qt_notnull_6 """select array_sort(group_array_intersect(c_array_string)) from group_array_intersect_test_not_null where id between 1 and 5;""" } diff --git a/run-be-ut.sh b/run-be-ut.sh index 0ab436973bc..fe3e9dbd4a5 100755 --- a/run-be-ut.sh +++ b/run-be-ut.sh @@ -220,10 +220,16 @@ echo "-- Make program: ${MAKE_PROGRAM}" echo "-- Use ccache: ${CMAKE_USE_CCACHE}" echo "-- Extra cxx flags: ${EXTRA_CXX_FLAGS:-}" +if [[ "${CMAKE_BUILD_TYPE}" = "ASAN" ]]; then + BUILD_TYPE="ASAN_UT" +else + BUILD_TYPE="${CMAKE_BUILD_TYPE}" +fi + cd "${CMAKE_BUILD_DIR}" "${CMAKE_CMD}" -G "${GENERATOR}" \ -DCMAKE_MAKE_PROGRAM="${MAKE_PROGRAM}" \ - -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \ + -DCMAKE_BUILD_TYPE="${BUILD_TYPE}" \ -DMAKE_TEST=ON \ -DGLIBC_COMPATIBILITY="${GLIBC_COMPATIBILITY}" \ -DUSE_LIBCPP="${USE_LIBCPP}" \ --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
