@@ -28,75 +28,92 @@ set(ICEBERG_TEST_RESOURCES "${CMAKE_SOURCE_DIR}/test/resources")
2828configure_file ("${CMAKE_SOURCE_DIR} /test/test_config.h.in"
2929 "${CMAKE_BINARY_DIR} /iceberg/test/test_config.h" )
3030
31- add_executable (schema_test )
32- target_sources (schema_test
33- PRIVATE name_mapping_test.cc
34- schema_test.cc
35- schema_field_test.cc
36- type_test.cc
37- transform_test.cc
38- partition_field_test.cc
39- partition_spec_test.cc
40- sort_field_test.cc
41- sort_order_test.cc
42- snapshot_test.cc
43- schema_util_test.cc )
44- target_link_libraries (schema_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock )
45- add_test (NAME schema_test COMMAND schema_test )
46-
47- add_executable (table_test )
48- target_include_directories (table_test PRIVATE "${CMAKE_BINARY_DIR} " )
49- target_sources (table_test PRIVATE test_common.cc json_internal_test.cc table_test.cc
50- schema_json_test.cc )
51- target_link_libraries (table_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock )
52- add_test (NAME table_test COMMAND table_test )
53-
54- add_executable (expression_test )
55- target_sources (expression_test PRIVATE expression_test.cc literal_test.cc )
56- target_link_libraries (expression_test PRIVATE iceberg_static GTest::gtest_main
57- GTest::gmock )
58- add_test (NAME expression_test COMMAND expression_test )
59-
60- add_executable (json_serde_test )
61- target_include_directories (json_serde_test PRIVATE "${CMAKE_BINARY_DIR} " )
62- target_sources (json_serde_test PRIVATE test_common.cc json_internal_test.cc
63- metadata_serde_test.cc schema_json_test.cc )
64- target_link_libraries (json_serde_test PRIVATE iceberg_static GTest::gtest_main
65- GTest::gmock )
66- add_test (NAME json_serde_test COMMAND json_serde_test )
67-
68- add_executable (util_test )
69- target_sources (util_test PRIVATE formatter_test.cc config_test.cc visit_type_test.cc
70- string_utils_test.cc )
71- target_link_libraries (util_test PRIVATE iceberg_static GTest::gtest_main GTest::gmock )
72- add_test (NAME util_test COMMAND util_test )
31+ function (add_iceberg_test test_name )
32+ set (options USE_BUNDLE)
33+ set (oneValueArgs)
34+ set (multiValueArgs SOURCES)
35+ cmake_parse_arguments (ARG
36+ "${options} "
37+ "${oneValueArgs} "
38+ "${multiValueArgs} "
39+ ${ARGN} )
40+
41+ add_executable (${test_name} )
42+ target_include_directories (${test_name} PRIVATE "${CMAKE_BINARY_DIR} " )
43+
44+ target_sources (${test_name} PRIVATE ${ARG_SOURCES} )
45+
46+ if (ARG_USE_BUNDLE)
47+ target_link_libraries (${test_name} PRIVATE iceberg_bundle_static GTest::gtest_main
48+ GTest::gmock )
49+ else ()
50+ target_link_libraries (${test_name} PRIVATE iceberg_static GTest::gtest_main
51+ GTest::gmock )
52+ endif ()
53+
54+ add_test (NAME ${test_name} COMMAND ${test_name} )
55+ endfunction ()
56+
57+ add_iceberg_test (schema_test
58+ SOURCES
59+ name_mapping_test.cc
60+ schema_test.cc
61+ schema_field_test.cc
62+ type_test.cc
63+ transform_test.cc
64+ partition_field_test.cc
65+ partition_spec_test.cc
66+ sort_field_test.cc
67+ sort_order_test.cc
68+ snapshot_test.cc
69+ schema_util_test.cc )
70+
71+ add_iceberg_test (table_test
72+ SOURCES
73+ test_common.cc
74+ json_internal_test.cc
75+ table_test.cc
76+ schema_json_test.cc )
77+
78+ add_iceberg_test (expression_test SOURCES expression_test.cc literal_test.cc )
79+
80+ add_iceberg_test (json_serde_test
81+ SOURCES
82+ test_common.cc
83+ json_internal_test.cc
84+ metadata_serde_test.cc
85+ schema_json_test.cc )
86+
87+ add_iceberg_test (util_test
88+ SOURCES
89+ formatter_test.cc
90+ config_test.cc
91+ visit_type_test.cc
92+ string_utils_test.cc )
7393
7494if (ICEBERG_BUILD_BUNDLE)
75- add_executable (avro_test )
76- target_sources (avro_test
77- PRIVATE avro_data_test.cc
78- avro_test.cc
79- avro_schema_test.cc
80- avro_stream_test.cc
81- manifest_list_reader_test.cc
82- manifest_reader_test.cc
83- test_common.cc )
84- target_link_libraries (avro_test PRIVATE iceberg_bundle_static GTest::gtest_main
85- GTest::gmock )
86- target_include_directories (avro_test PRIVATE "${CMAKE_BINARY_DIR} " )
87- add_test (NAME avro_test COMMAND avro_test )
88-
89- add_executable (arrow_test )
90- target_sources (arrow_test PRIVATE arrow_test.cc arrow_fs_file_io_test.cc
91- metadata_io_test.cc gzip_decompress_test.cc )
92- target_link_libraries (arrow_test PRIVATE iceberg_bundle_static GTest::gtest_main
93- GTest::gmock )
94- add_test (NAME arrow_test COMMAND arrow_test )
95-
96- add_executable (catalog_test )
97- target_include_directories (catalog_test PRIVATE "${CMAKE_BINARY_DIR} " )
98- target_sources (catalog_test PRIVATE test_common.cc in_memory_catalog_test.cc )
99- target_link_libraries (catalog_test PRIVATE iceberg_bundle_static GTest::gtest_main
100- GTest::gmock )
101- add_test (NAME catalog_test COMMAND catalog_test )
95+ add_iceberg_test (avro_test
96+ USE_BUNDLE
97+ SOURCES
98+ avro_data_test.cc
99+ avro_test.cc
100+ avro_schema_test.cc
101+ avro_stream_test.cc
102+ manifest_list_reader_test.cc
103+ manifest_reader_test.cc
104+ test_common.cc )
105+
106+ add_iceberg_test (arrow_test
107+ USE_BUNDLE
108+ SOURCES
109+ arrow_test.cc
110+ arrow_fs_file_io_test.cc
111+ metadata_io_test.cc
112+ gzip_decompress_test.cc )
113+
114+ add_iceberg_test (catalog_test
115+ USE_BUNDLE
116+ SOURCES
117+ test_common.cc
118+ in_memory_catalog_test.cc )
102119endif ()
0 commit comments