@@ -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