You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@iceberg.apache.org by "lishuxu (via GitHub)" <gi...@apache.org> on 2025/07/22 03:40:52 UTC
[PR] refactor: Simplify test setup using a common CMake function [iceberg-cpp]
lishuxu opened a new pull request, #151:
URL: https://github.com/apache/iceberg-cpp/pull/151
(no comment)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] refactor: Simplify test setup using a common CMake function [iceberg-cpp]
Posted by "openinx (via GitHub)" <gi...@apache.org>.
openinx commented on PR #151:
URL: https://github.com/apache/iceberg-cpp/pull/151#issuecomment-3119023658
@lishuxu Could you please help to resolve the conflicts ? Thanks.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] refactor: Simplify test setup using a common CMake function [iceberg-cpp]
Posted by "lishuxu (via GitHub)" <gi...@apache.org>.
lishuxu commented on code in PR #151:
URL: https://github.com/apache/iceberg-cpp/pull/151#discussion_r2221939158
##########
test/CMakeLists.txt:
##########
@@ -28,73 +28,97 @@ set(ICEBERG_TEST_RESOURCES "${CMAKE_SOURCE_DIR}/test/resources")
configure_file("${CMAKE_SOURCE_DIR}/test/test_config.h.in"
"${CMAKE_BINARY_DIR}/iceberg/test/test_config.h")
-add_executable(schema_test)
-target_sources(schema_test
- PRIVATE name_mapping_test.cc
- schema_test.cc
- schema_field_test.cc
- type_test.cc
- transform_test.cc
- partition_field_test.cc
- partition_spec_test.cc
- sort_field_test.cc
- sort_order_test.cc
- snapshot_test.cc
- schema_util_test.cc)
-target_link_libraries(schema_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME schema_test COMMAND schema_test)
-
-add_executable(table_test)
-target_include_directories(table_test PRIVATE "${CMAKE_BINARY_DIR}")
-target_sources(table_test PRIVATE test_common.cc json_internal_test.cc table_test.cc
- schema_json_test.cc)
-target_link_libraries(table_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME table_test COMMAND table_test)
-
-add_executable(expression_test)
-target_sources(expression_test PRIVATE expression_test.cc literal_test.cc)
-target_link_libraries(expression_test PRIVATE iceberg_static GTest::gtest_main
- GTest::gmock)
-add_test(NAME expression_test COMMAND expression_test)
-
-add_executable(json_serde_test)
-target_include_directories(json_serde_test PRIVATE "${CMAKE_BINARY_DIR}")
-target_sources(json_serde_test PRIVATE test_common.cc json_internal_test.cc
- metadata_serde_test.cc schema_json_test.cc)
-target_link_libraries(json_serde_test PRIVATE iceberg_static GTest::gtest_main
- GTest::gmock)
-add_test(NAME json_serde_test COMMAND json_serde_test)
-
-add_executable(util_test)
-target_sources(util_test PRIVATE formatter_test.cc config_test.cc visit_type_test.cc)
-target_link_libraries(util_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME util_test COMMAND util_test)
+function(iceberg_add_test test_name)
Review Comment:
OK, done!
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] refactor: Simplify test setup using a common CMake function [iceberg-cpp]
Posted by "Fokko (via GitHub)" <gi...@apache.org>.
Fokko merged PR #151:
URL: https://github.com/apache/iceberg-cpp/pull/151
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] refactor: Simplify test setup using a common CMake function [iceberg-cpp]
Posted by "wgtmac (via GitHub)" <gi...@apache.org>.
wgtmac commented on code in PR #151:
URL: https://github.com/apache/iceberg-cpp/pull/151#discussion_r2221343296
##########
test/CMakeLists.txt:
##########
@@ -28,73 +28,97 @@ set(ICEBERG_TEST_RESOURCES "${CMAKE_SOURCE_DIR}/test/resources")
configure_file("${CMAKE_SOURCE_DIR}/test/test_config.h.in"
"${CMAKE_BINARY_DIR}/iceberg/test/test_config.h")
-add_executable(schema_test)
-target_sources(schema_test
- PRIVATE name_mapping_test.cc
- schema_test.cc
- schema_field_test.cc
- type_test.cc
- transform_test.cc
- partition_field_test.cc
- partition_spec_test.cc
- sort_field_test.cc
- sort_order_test.cc
- snapshot_test.cc
- schema_util_test.cc)
-target_link_libraries(schema_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME schema_test COMMAND schema_test)
-
-add_executable(table_test)
-target_include_directories(table_test PRIVATE "${CMAKE_BINARY_DIR}")
-target_sources(table_test PRIVATE test_common.cc json_internal_test.cc table_test.cc
- schema_json_test.cc)
-target_link_libraries(table_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME table_test COMMAND table_test)
-
-add_executable(expression_test)
-target_sources(expression_test PRIVATE expression_test.cc literal_test.cc)
-target_link_libraries(expression_test PRIVATE iceberg_static GTest::gtest_main
- GTest::gmock)
-add_test(NAME expression_test COMMAND expression_test)
-
-add_executable(json_serde_test)
-target_include_directories(json_serde_test PRIVATE "${CMAKE_BINARY_DIR}")
-target_sources(json_serde_test PRIVATE test_common.cc json_internal_test.cc
- metadata_serde_test.cc schema_json_test.cc)
-target_link_libraries(json_serde_test PRIVATE iceberg_static GTest::gtest_main
- GTest::gmock)
-add_test(NAME json_serde_test COMMAND json_serde_test)
-
-add_executable(util_test)
-target_sources(util_test PRIVATE formatter_test.cc config_test.cc visit_type_test.cc)
-target_link_libraries(util_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME util_test COMMAND util_test)
+function(iceberg_add_test test_name)
+ cmake_parse_arguments(ARG
+ "USE_BUNDLE"
+ "INCLUDE_DIR"
+ "SRCS"
+ ${ARGN})
+
+ add_executable(${test_name})
+ if(ARG_INCLUDE_DIR)
+ target_include_directories(${test_name} PRIVATE "${ARG_INCLUDE_DIR}")
Review Comment:
What about removing `INCLUDE_DIR` argument? We can add `${CMAKE_BINARY_DIR}` to every test executable.
##########
test/CMakeLists.txt:
##########
@@ -28,73 +28,97 @@ set(ICEBERG_TEST_RESOURCES "${CMAKE_SOURCE_DIR}/test/resources")
configure_file("${CMAKE_SOURCE_DIR}/test/test_config.h.in"
"${CMAKE_BINARY_DIR}/iceberg/test/test_config.h")
-add_executable(schema_test)
-target_sources(schema_test
- PRIVATE name_mapping_test.cc
- schema_test.cc
- schema_field_test.cc
- type_test.cc
- transform_test.cc
- partition_field_test.cc
- partition_spec_test.cc
- sort_field_test.cc
- sort_order_test.cc
- snapshot_test.cc
- schema_util_test.cc)
-target_link_libraries(schema_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME schema_test COMMAND schema_test)
-
-add_executable(table_test)
-target_include_directories(table_test PRIVATE "${CMAKE_BINARY_DIR}")
-target_sources(table_test PRIVATE test_common.cc json_internal_test.cc table_test.cc
- schema_json_test.cc)
-target_link_libraries(table_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME table_test COMMAND table_test)
-
-add_executable(expression_test)
-target_sources(expression_test PRIVATE expression_test.cc literal_test.cc)
-target_link_libraries(expression_test PRIVATE iceberg_static GTest::gtest_main
- GTest::gmock)
-add_test(NAME expression_test COMMAND expression_test)
-
-add_executable(json_serde_test)
-target_include_directories(json_serde_test PRIVATE "${CMAKE_BINARY_DIR}")
-target_sources(json_serde_test PRIVATE test_common.cc json_internal_test.cc
- metadata_serde_test.cc schema_json_test.cc)
-target_link_libraries(json_serde_test PRIVATE iceberg_static GTest::gtest_main
- GTest::gmock)
-add_test(NAME json_serde_test COMMAND json_serde_test)
-
-add_executable(util_test)
-target_sources(util_test PRIVATE formatter_test.cc config_test.cc visit_type_test.cc)
-target_link_libraries(util_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME util_test COMMAND util_test)
+function(iceberg_add_test test_name)
+ cmake_parse_arguments(ARG
+ "USE_BUNDLE"
+ "INCLUDE_DIR"
+ "SRCS"
Review Comment:
```suggestion
"INCLUDES"
"SOURCES"
```
##########
test/CMakeLists.txt:
##########
@@ -28,73 +28,97 @@ set(ICEBERG_TEST_RESOURCES "${CMAKE_SOURCE_DIR}/test/resources")
configure_file("${CMAKE_SOURCE_DIR}/test/test_config.h.in"
"${CMAKE_BINARY_DIR}/iceberg/test/test_config.h")
-add_executable(schema_test)
-target_sources(schema_test
- PRIVATE name_mapping_test.cc
- schema_test.cc
- schema_field_test.cc
- type_test.cc
- transform_test.cc
- partition_field_test.cc
- partition_spec_test.cc
- sort_field_test.cc
- sort_order_test.cc
- snapshot_test.cc
- schema_util_test.cc)
-target_link_libraries(schema_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME schema_test COMMAND schema_test)
-
-add_executable(table_test)
-target_include_directories(table_test PRIVATE "${CMAKE_BINARY_DIR}")
-target_sources(table_test PRIVATE test_common.cc json_internal_test.cc table_test.cc
- schema_json_test.cc)
-target_link_libraries(table_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME table_test COMMAND table_test)
-
-add_executable(expression_test)
-target_sources(expression_test PRIVATE expression_test.cc literal_test.cc)
-target_link_libraries(expression_test PRIVATE iceberg_static GTest::gtest_main
- GTest::gmock)
-add_test(NAME expression_test COMMAND expression_test)
-
-add_executable(json_serde_test)
-target_include_directories(json_serde_test PRIVATE "${CMAKE_BINARY_DIR}")
-target_sources(json_serde_test PRIVATE test_common.cc json_internal_test.cc
- metadata_serde_test.cc schema_json_test.cc)
-target_link_libraries(json_serde_test PRIVATE iceberg_static GTest::gtest_main
- GTest::gmock)
-add_test(NAME json_serde_test COMMAND json_serde_test)
-
-add_executable(util_test)
-target_sources(util_test PRIVATE formatter_test.cc config_test.cc visit_type_test.cc)
-target_link_libraries(util_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME util_test COMMAND util_test)
+function(iceberg_add_test test_name)
Review Comment:
```suggestion
function(add_iceberg_test test_name)
```
##########
test/CMakeLists.txt:
##########
@@ -28,73 +28,97 @@ set(ICEBERG_TEST_RESOURCES "${CMAKE_SOURCE_DIR}/test/resources")
configure_file("${CMAKE_SOURCE_DIR}/test/test_config.h.in"
"${CMAKE_BINARY_DIR}/iceberg/test/test_config.h")
-add_executable(schema_test)
-target_sources(schema_test
- PRIVATE name_mapping_test.cc
- schema_test.cc
- schema_field_test.cc
- type_test.cc
- transform_test.cc
- partition_field_test.cc
- partition_spec_test.cc
- sort_field_test.cc
- sort_order_test.cc
- snapshot_test.cc
- schema_util_test.cc)
-target_link_libraries(schema_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME schema_test COMMAND schema_test)
-
-add_executable(table_test)
-target_include_directories(table_test PRIVATE "${CMAKE_BINARY_DIR}")
-target_sources(table_test PRIVATE test_common.cc json_internal_test.cc table_test.cc
- schema_json_test.cc)
-target_link_libraries(table_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME table_test COMMAND table_test)
-
-add_executable(expression_test)
-target_sources(expression_test PRIVATE expression_test.cc literal_test.cc)
-target_link_libraries(expression_test PRIVATE iceberg_static GTest::gtest_main
- GTest::gmock)
-add_test(NAME expression_test COMMAND expression_test)
-
-add_executable(json_serde_test)
-target_include_directories(json_serde_test PRIVATE "${CMAKE_BINARY_DIR}")
-target_sources(json_serde_test PRIVATE test_common.cc json_internal_test.cc
- metadata_serde_test.cc schema_json_test.cc)
-target_link_libraries(json_serde_test PRIVATE iceberg_static GTest::gtest_main
- GTest::gmock)
-add_test(NAME json_serde_test COMMAND json_serde_test)
-
-add_executable(util_test)
-target_sources(util_test PRIVATE formatter_test.cc config_test.cc visit_type_test.cc)
-target_link_libraries(util_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME util_test COMMAND util_test)
+function(iceberg_add_test test_name)
+ cmake_parse_arguments(ARG
+ "USE_BUNDLE"
+ "INCLUDE_DIR"
+ "SRCS"
+ ${ARGN})
+
+ add_executable(${test_name})
+ if(ARG_INCLUDE_DIR)
+ target_include_directories(${test_name} PRIVATE "${ARG_INCLUDE_DIR}")
+ endif()
+
+ target_sources(${test_name} PRIVATE ${ARG_SRCS})
+
+ if(ARG_USE_BUNDLE)
+ target_link_libraries(${test_name} PRIVATE iceberg_bundle_static GTest::gtest_main
+ GTest::gmock)
+ else()
+ target_link_libraries(${test_name} PRIVATE iceberg_static GTest::gtest_main
+ GTest::gmock)
+ endif()
+
+ add_test(NAME ${test_name} COMMAND ${test_name})
+endfunction()
+
+iceberg_add_test(schema_test
+ SRCS
+ name_mapping_test.cc
+ schema_test.cc
+ schema_field_test.cc
+ type_test.cc
+ transform_test.cc
+ partition_field_test.cc
+ partition_spec_test.cc
+ sort_field_test.cc
+ sort_order_test.cc
+ snapshot_test.cc
+ schema_util_test.cc)
+
+iceberg_add_test(table_test
+ INCLUDE_DIR
+ "${CMAKE_BINARY_DIR}"
+ SRCS
+ test_common.cc
Review Comment:
`test_common.cc` can also be added by default in the function.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] refactor: Simplify test setup using a common CMake function [iceberg-cpp]
Posted by "lishuxu (via GitHub)" <gi...@apache.org>.
lishuxu commented on PR #151:
URL: https://github.com/apache/iceberg-cpp/pull/151#issuecomment-3121591838
> @lishuxu Could you please help to resolve the conflicts ? Thanks.
OK, done!
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] refactor: Simplify test setup using a common CMake function [iceberg-cpp]
Posted by "lishuxu (via GitHub)" <gi...@apache.org>.
lishuxu commented on code in PR #151:
URL: https://github.com/apache/iceberg-cpp/pull/151#discussion_r2221937760
##########
test/CMakeLists.txt:
##########
@@ -28,73 +28,97 @@ set(ICEBERG_TEST_RESOURCES "${CMAKE_SOURCE_DIR}/test/resources")
configure_file("${CMAKE_SOURCE_DIR}/test/test_config.h.in"
"${CMAKE_BINARY_DIR}/iceberg/test/test_config.h")
-add_executable(schema_test)
-target_sources(schema_test
- PRIVATE name_mapping_test.cc
- schema_test.cc
- schema_field_test.cc
- type_test.cc
- transform_test.cc
- partition_field_test.cc
- partition_spec_test.cc
- sort_field_test.cc
- sort_order_test.cc
- snapshot_test.cc
- schema_util_test.cc)
-target_link_libraries(schema_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME schema_test COMMAND schema_test)
-
-add_executable(table_test)
-target_include_directories(table_test PRIVATE "${CMAKE_BINARY_DIR}")
-target_sources(table_test PRIVATE test_common.cc json_internal_test.cc table_test.cc
- schema_json_test.cc)
-target_link_libraries(table_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME table_test COMMAND table_test)
-
-add_executable(expression_test)
-target_sources(expression_test PRIVATE expression_test.cc literal_test.cc)
-target_link_libraries(expression_test PRIVATE iceberg_static GTest::gtest_main
- GTest::gmock)
-add_test(NAME expression_test COMMAND expression_test)
-
-add_executable(json_serde_test)
-target_include_directories(json_serde_test PRIVATE "${CMAKE_BINARY_DIR}")
-target_sources(json_serde_test PRIVATE test_common.cc json_internal_test.cc
- metadata_serde_test.cc schema_json_test.cc)
-target_link_libraries(json_serde_test PRIVATE iceberg_static GTest::gtest_main
- GTest::gmock)
-add_test(NAME json_serde_test COMMAND json_serde_test)
-
-add_executable(util_test)
-target_sources(util_test PRIVATE formatter_test.cc config_test.cc visit_type_test.cc)
-target_link_libraries(util_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME util_test COMMAND util_test)
+function(iceberg_add_test test_name)
+ cmake_parse_arguments(ARG
+ "USE_BUNDLE"
+ "INCLUDE_DIR"
+ "SRCS"
Review Comment:
OK, it's better.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] refactor: Simplify test setup using a common CMake function [iceberg-cpp]
Posted by "lishuxu (via GitHub)" <gi...@apache.org>.
lishuxu commented on code in PR #151:
URL: https://github.com/apache/iceberg-cpp/pull/151#discussion_r2221944629
##########
test/CMakeLists.txt:
##########
@@ -28,73 +28,97 @@ set(ICEBERG_TEST_RESOURCES "${CMAKE_SOURCE_DIR}/test/resources")
configure_file("${CMAKE_SOURCE_DIR}/test/test_config.h.in"
"${CMAKE_BINARY_DIR}/iceberg/test/test_config.h")
-add_executable(schema_test)
-target_sources(schema_test
- PRIVATE name_mapping_test.cc
- schema_test.cc
- schema_field_test.cc
- type_test.cc
- transform_test.cc
- partition_field_test.cc
- partition_spec_test.cc
- sort_field_test.cc
- sort_order_test.cc
- snapshot_test.cc
- schema_util_test.cc)
-target_link_libraries(schema_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME schema_test COMMAND schema_test)
-
-add_executable(table_test)
-target_include_directories(table_test PRIVATE "${CMAKE_BINARY_DIR}")
-target_sources(table_test PRIVATE test_common.cc json_internal_test.cc table_test.cc
- schema_json_test.cc)
-target_link_libraries(table_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME table_test COMMAND table_test)
-
-add_executable(expression_test)
-target_sources(expression_test PRIVATE expression_test.cc literal_test.cc)
-target_link_libraries(expression_test PRIVATE iceberg_static GTest::gtest_main
- GTest::gmock)
-add_test(NAME expression_test COMMAND expression_test)
-
-add_executable(json_serde_test)
-target_include_directories(json_serde_test PRIVATE "${CMAKE_BINARY_DIR}")
-target_sources(json_serde_test PRIVATE test_common.cc json_internal_test.cc
- metadata_serde_test.cc schema_json_test.cc)
-target_link_libraries(json_serde_test PRIVATE iceberg_static GTest::gtest_main
- GTest::gmock)
-add_test(NAME json_serde_test COMMAND json_serde_test)
-
-add_executable(util_test)
-target_sources(util_test PRIVATE formatter_test.cc config_test.cc visit_type_test.cc)
-target_link_libraries(util_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME util_test COMMAND util_test)
+function(iceberg_add_test test_name)
+ cmake_parse_arguments(ARG
+ "USE_BUNDLE"
+ "INCLUDE_DIR"
+ "SRCS"
+ ${ARGN})
+
+ add_executable(${test_name})
+ if(ARG_INCLUDE_DIR)
+ target_include_directories(${test_name} PRIVATE "${ARG_INCLUDE_DIR}")
+ endif()
+
+ target_sources(${test_name} PRIVATE ${ARG_SRCS})
+
+ if(ARG_USE_BUNDLE)
+ target_link_libraries(${test_name} PRIVATE iceberg_bundle_static GTest::gtest_main
+ GTest::gmock)
+ else()
+ target_link_libraries(${test_name} PRIVATE iceberg_static GTest::gtest_main
+ GTest::gmock)
+ endif()
+
+ add_test(NAME ${test_name} COMMAND ${test_name})
+endfunction()
+
+iceberg_add_test(schema_test
+ SRCS
+ name_mapping_test.cc
+ schema_test.cc
+ schema_field_test.cc
+ type_test.cc
+ transform_test.cc
+ partition_field_test.cc
+ partition_spec_test.cc
+ sort_field_test.cc
+ sort_order_test.cc
+ snapshot_test.cc
+ schema_util_test.cc)
+
+iceberg_add_test(table_test
+ INCLUDE_DIR
+ "${CMAKE_BINARY_DIR}"
+ SRCS
+ test_common.cc
Review Comment:
About half of the tests don't use test_common.cc, so I didn’t include it as a default source file.
Ask ChatGPT
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] refactor: Simplify test setup using a common CMake function [iceberg-cpp]
Posted by "lishuxu (via GitHub)" <gi...@apache.org>.
lishuxu commented on code in PR #151:
URL: https://github.com/apache/iceberg-cpp/pull/151#discussion_r2221938334
##########
test/CMakeLists.txt:
##########
@@ -28,73 +28,97 @@ set(ICEBERG_TEST_RESOURCES "${CMAKE_SOURCE_DIR}/test/resources")
configure_file("${CMAKE_SOURCE_DIR}/test/test_config.h.in"
"${CMAKE_BINARY_DIR}/iceberg/test/test_config.h")
-add_executable(schema_test)
-target_sources(schema_test
- PRIVATE name_mapping_test.cc
- schema_test.cc
- schema_field_test.cc
- type_test.cc
- transform_test.cc
- partition_field_test.cc
- partition_spec_test.cc
- sort_field_test.cc
- sort_order_test.cc
- snapshot_test.cc
- schema_util_test.cc)
-target_link_libraries(schema_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME schema_test COMMAND schema_test)
-
-add_executable(table_test)
-target_include_directories(table_test PRIVATE "${CMAKE_BINARY_DIR}")
-target_sources(table_test PRIVATE test_common.cc json_internal_test.cc table_test.cc
- schema_json_test.cc)
-target_link_libraries(table_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME table_test COMMAND table_test)
-
-add_executable(expression_test)
-target_sources(expression_test PRIVATE expression_test.cc literal_test.cc)
-target_link_libraries(expression_test PRIVATE iceberg_static GTest::gtest_main
- GTest::gmock)
-add_test(NAME expression_test COMMAND expression_test)
-
-add_executable(json_serde_test)
-target_include_directories(json_serde_test PRIVATE "${CMAKE_BINARY_DIR}")
-target_sources(json_serde_test PRIVATE test_common.cc json_internal_test.cc
- metadata_serde_test.cc schema_json_test.cc)
-target_link_libraries(json_serde_test PRIVATE iceberg_static GTest::gtest_main
- GTest::gmock)
-add_test(NAME json_serde_test COMMAND json_serde_test)
-
-add_executable(util_test)
-target_sources(util_test PRIVATE formatter_test.cc config_test.cc visit_type_test.cc)
-target_link_libraries(util_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME util_test COMMAND util_test)
+function(iceberg_add_test test_name)
+ cmake_parse_arguments(ARG
+ "USE_BUNDLE"
+ "INCLUDE_DIR"
+ "SRCS"
+ ${ARGN})
+
+ add_executable(${test_name})
+ if(ARG_INCLUDE_DIR)
+ target_include_directories(${test_name} PRIVATE "${ARG_INCLUDE_DIR}")
Review Comment:
OK, it's better.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] refactor: Simplify test setup using a common CMake function [iceberg-cpp]
Posted by "lishuxu (via GitHub)" <gi...@apache.org>.
lishuxu commented on code in PR #151:
URL: https://github.com/apache/iceberg-cpp/pull/151#discussion_r2221944629
##########
test/CMakeLists.txt:
##########
@@ -28,73 +28,97 @@ set(ICEBERG_TEST_RESOURCES "${CMAKE_SOURCE_DIR}/test/resources")
configure_file("${CMAKE_SOURCE_DIR}/test/test_config.h.in"
"${CMAKE_BINARY_DIR}/iceberg/test/test_config.h")
-add_executable(schema_test)
-target_sources(schema_test
- PRIVATE name_mapping_test.cc
- schema_test.cc
- schema_field_test.cc
- type_test.cc
- transform_test.cc
- partition_field_test.cc
- partition_spec_test.cc
- sort_field_test.cc
- sort_order_test.cc
- snapshot_test.cc
- schema_util_test.cc)
-target_link_libraries(schema_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME schema_test COMMAND schema_test)
-
-add_executable(table_test)
-target_include_directories(table_test PRIVATE "${CMAKE_BINARY_DIR}")
-target_sources(table_test PRIVATE test_common.cc json_internal_test.cc table_test.cc
- schema_json_test.cc)
-target_link_libraries(table_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME table_test COMMAND table_test)
-
-add_executable(expression_test)
-target_sources(expression_test PRIVATE expression_test.cc literal_test.cc)
-target_link_libraries(expression_test PRIVATE iceberg_static GTest::gtest_main
- GTest::gmock)
-add_test(NAME expression_test COMMAND expression_test)
-
-add_executable(json_serde_test)
-target_include_directories(json_serde_test PRIVATE "${CMAKE_BINARY_DIR}")
-target_sources(json_serde_test PRIVATE test_common.cc json_internal_test.cc
- metadata_serde_test.cc schema_json_test.cc)
-target_link_libraries(json_serde_test PRIVATE iceberg_static GTest::gtest_main
- GTest::gmock)
-add_test(NAME json_serde_test COMMAND json_serde_test)
-
-add_executable(util_test)
-target_sources(util_test PRIVATE formatter_test.cc config_test.cc visit_type_test.cc)
-target_link_libraries(util_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock)
-add_test(NAME util_test COMMAND util_test)
+function(iceberg_add_test test_name)
+ cmake_parse_arguments(ARG
+ "USE_BUNDLE"
+ "INCLUDE_DIR"
+ "SRCS"
+ ${ARGN})
+
+ add_executable(${test_name})
+ if(ARG_INCLUDE_DIR)
+ target_include_directories(${test_name} PRIVATE "${ARG_INCLUDE_DIR}")
+ endif()
+
+ target_sources(${test_name} PRIVATE ${ARG_SRCS})
+
+ if(ARG_USE_BUNDLE)
+ target_link_libraries(${test_name} PRIVATE iceberg_bundle_static GTest::gtest_main
+ GTest::gmock)
+ else()
+ target_link_libraries(${test_name} PRIVATE iceberg_static GTest::gtest_main
+ GTest::gmock)
+ endif()
+
+ add_test(NAME ${test_name} COMMAND ${test_name})
+endfunction()
+
+iceberg_add_test(schema_test
+ SRCS
+ name_mapping_test.cc
+ schema_test.cc
+ schema_field_test.cc
+ type_test.cc
+ transform_test.cc
+ partition_field_test.cc
+ partition_spec_test.cc
+ sort_field_test.cc
+ sort_order_test.cc
+ snapshot_test.cc
+ schema_util_test.cc)
+
+iceberg_add_test(table_test
+ INCLUDE_DIR
+ "${CMAKE_BINARY_DIR}"
+ SRCS
+ test_common.cc
Review Comment:
About half of the tests don't use test_common.cc, so I didn’t include it as a default source file.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org