Skip to content

Conversation

Mytherin
Copy link
Contributor

This PR moves over all httpfs tests from the main repo to this repo, also including the scripts to set up and run minio in docker. It also includes the CI run that runs all of these tests as part of the Integration Tests workflow. The goal is to run the complete set of tests as part of the duckdb-httpfs test suite only, and rip these out of the main repo, completing the migration of httpfs to the new repo.

This should also improve testing of PRs made to this repo as several of the settings were not correctly set up in the current MinIO tests and slow tests were not run, causing a bunch of httpfs tests to be skipped.

@Mytherin Mytherin requested a review from carlopi September 25, 2025 12:53
@Mytherin Mytherin merged commit f45bdd1 into duckdb:v1.4-andium Sep 25, 2025
13 checks passed
@carlopi
Copy link
Collaborator

carlopi commented Sep 25, 2025

Minio CI runs shows:

skip on error_message matching 'HTTP': 2
skip on error_message matching 'Unable to connect': 3

I think this is good as is, but I would send another PR to change the default to log all as failures and review them (chances some tests are just outdated / wrong).

Thanks, I think this is great!

@Mytherin
Copy link
Contributor Author

Yes, sounds good. I think these failures were already present before, e.g. see this log (note the SKIPPED).

[0/121]: test/sql/httpfs/hffs.test_slow (SKIPPED)
[1/121]: test/sql/httpfs/internal_issue_2490.test (1 assertion )
[2/121]: test/sql/httpfs/hffs.test (7 assertions)
[3/121]: test/sql/extensions/version_is_valid_httpfs.test (SKIPPED)
[4/121]: test/sql/json/table/read_json_objects.test (89 assertions)
[5/121]: test/sql/json/table/read_json_auto.test_slow (173 assertions)
[6/121]: test/sql/json/table/read_json.test (301 assertions)
[7/121]: test/sql/copy/encryption/different_aes_engines.test (4 assertions)
[8/121]: test/sql/copy/test_remote_head_forbidden.test (1 assertion )
[9/121]: test/sql/copy/s3/glob_s3_paging.test_slow (8014 assertions)
[10/121]: test/sql/copy/s3/fully_qualified_s3_url.test (56 assertions)
[11/121]: test/sql/copy/s3/starstar.test (111 assertions)
[12/121]: test/sql/copy/s3/http_log.test (8 assertions)
[13/121]: test/sql/copy/s3/upload_small_file.test (423 assertions)
[14/121]: test/sql/copy/s3/s3_presigned_read.test (4 assertions)
[15/121]: test/sql/copy/s3/upload_large_file.test_slow (9 assertions)
[16/121]: test/sql/copy/s3/s3_presigned_read.test_slow (3 assertions)
[17/121]: test/sql/copy/s3/s3_hive_partition.test (36 assertions)
[18/121]: test/sql/copy/s3/parquet_s3_tpcds.test_slow (29158 assertions)
[19/121]: test/sql/copy/s3/hive_partitioned_write_s3.test_slow (77475 assertions)
[20/121]: test/sql/copy/s3/hive_partitioned_write_s3.test (144 assertions)
[21/121]: test/sql/copy/s3/http_secret.test (4 assertions)
[22/121]: test/sql/copy/s3/download_config.test (51 assertions)
[23/121]: test/sql/copy/s3/upload_file_parallel.test_slow (412 assertions)
[24/121]: test/sql/copy/s3/upload_large_json_file.test_slow (7 assertions)
[25/121]: test/sql/copy/s3/http_proxy.test (SKIPPED)
[26/121]: test/sql/copy/s3/metadata_cache.test (21 assertions)
[27/121]: test/sql/copy/s3/url_encode.test (77 assertions)
[28/121]: test/sql/copy/s3/parquet_s3_tpch.test_slow (2337 assertions)
[29/121]: test/sql/copy/csv/unquoted_escape/human_eval.test (95 assertions)
[30/121]: test/sql/copy/csv/test_csv_remote.test_slow (7 assertions)
[31/121]: test/sql/copy/csv/test_limit_spinlock.test_slow (3 assertions)
[32/121]: test/sql/copy/csv/parallel/csv_parallel_httpfs.test (221 assertions)
[33/121]: test/sql/copy/csv/parallel/test_parallel_csv.test (SKIPPED)
[34/121]: test/sql/copy/csv/parallel/csv_parallel_clickbench.test_slow (0 assertions)
[35/121]: test/sql/copy/csv/glob/read_csv_glob_s3.test (154 assertions)
[36/121]: test/sql/copy/csv/glob/copy_csv_glob_s3.test (30 assertions)
[37/121]: test/sql/copy/csv/test_csv_remote.test (17 assertions)
[38/121]: test/sql/copy/csv/test_csv_httpfs_prepared.test (184 assertions)
[39/121]: test/sql/copy/csv/test_12314.test_slow (3 assertions)
[40/121]: test/sql/copy/csv/test_sniff_httpfs.test (3 assertions)
[41/121]: test/sql/copy/csv/test_csv_httpfs.test (1 assertion )
[42/121]: test/sql/copy/csv/test_csv_httpfs.test_slow (1 assertion )
[43/121]: test/sql/copy/csv/test_mixed_lines.test_slow (563 assertions)
[44/121]: test/sql/copy/csv/test_url_with_plus.test (2 assertions)
[45/121]: test/sql/copy/csv/recursive_query_csv.test_slow (1 assertion )
[46/121]: test/sql/copy/parquet/delta_byte_array_multiple_pages.test (4 assertions)
[47/121]: test/sql/copy/parquet/parquet_5968.test (7 assertions)
[48/121]: test/sql/copy/parquet/test_yellow_cab.test_slow (43 assertions)
[49/121]: test/sql/copy/parquet/snowflake_lineitem.test (1 assertion )
[50/121]: test/sql/copy/parquet/parquet_encryption_httpfs.test (23 assertions)
[51/121]: test/sql/copy/parquet/parquet_glob_s3.test (58 assertions)
[52/121]: test/sql/copy/parquet/parquet_http_prefetch.test (5 assertions)
[53/121]: test/sql/copy/parquet/test_parquet_force_download.test (32 assertions)
[54/121]: test/sql/copy/parquet/parquet_2102.test_slow (12 assertions)
[55/121]: test/sql/copy/parquet/parquet_encryption_mbedtls_openssl.test (19 assertions)
[56/121]: test/sql/copy/parquet/parquet_encrypted_tpch_httpfs.test_slow (154946 assertions)
[57/121]: test/sql/copy/parquet/test_parquet_remote_foreign_files.test (32 assertions)
[58/121]: test/sql/copy/parquet/test_parquet_remote.test (132 assertions)
[59/121]: test/sql/copy/parquet/delta_byte_array_length_mismatch.test (1 assertion )
[60/121]: test/sql/copy/parquet/parquet_boolean_page.test_slow (6 assertions)
[61/121]: test/sql/logging/http_logging.test (16 assertions)
[62/121]: test/sql/logging/file_system_logging.test (51 assertions)
[63/121]: test/sql/attach/attach_s3.test (16 assertions)
[64/121]: test/sql/attach/attach_s3_tpch.test_slow (77489 assertions)
[65/121]: test/sql/attach/attach_httpfs.test (15 assertions)
[66/121]: test/sql/attach/attach_remote.test (3 assertions)
[67/121]: test/sql/secrets/secret_compatibility_httpfs.test (43 assertions)
[68/121]: test/sql/secrets/create_secret_cascading.test_slow (10 assertions)
[69/121]: test/sql/secrets/persistent_key_value_secret.test (2 assertions)
[70/121]: test/sql/secrets/create_secret_name_conflicts.test (23 assertions)
[71/121]: test/sql/secrets/create_secret_non_writable_persistent_dir.test (7 assertions)
[72/121]: test/sql/secrets/create_secret_defaults.test (36 assertions)
[73/121]: test/sql/secrets/create_secret_overwriting.test (14 assertions)
[74/121]: test/sql/secrets/create_secret.test_slow (18 assertions)
[75/121]: test/sql/secrets/create_secret_s3_serialization.test (34 assertions)
[76/121]: test/sql/secrets/create_secret_persistence_error_handling.test (10 assertions)
[77/121]: test/sql/secrets/create_secret_transactional.test (55 assertions)
[78/121]: test/sql/secrets/create_secret_r2_serialization.test (16 assertions)
[79/121]: test/sql/secrets/secret_types_function.test (15 assertions)
[80/121]: test/sql/secrets/create_secret_gcs.test_slow (9 assertions)
[81/121]: test/sql/secrets/create_secret_settings.test (16 assertions)
[82/121]: test/sql/secrets/create_secret_hffs.test (12 assertions)
[83/121]: test/sql/secrets/create_secret_scope_matching.test (14 assertions)
[84/121]: test/sql/secrets/create_secret_minio.test (11 assertions)
[85/121]: test/sql/secrets/create_secret_storage_backends.test (68 assertions)
[86/121]: test/sql/secrets/create_secret_persistence.test (54 assertions)
[87/121]: test/sql/secrets/create_secret_r2.test (SKIPPED)
[88/121]: test/sql/secrets/create_secret_invalid_map.test (3 assertions)
[89/121]: test/sql/secrets/create_secret_binding.test (11 assertions)
[90/121]: test/sql/settings/test_disabled_file_system_httpfs.test (5 assertions)
[91/121]: test/sql/delete/test_issue_1834.test_slow (6 assertions)
[92/121]: test/sql/storage/encryption/temp_files/encrypted_out_of_core.test_slow (16 assertions)
[93/121]: test/sql/storage/compression/alprd/alprd_read.test_slow (12 assertions)
[94/121]: test/sql/storage/compression/bitpacking/bitpacking_size_calculation.test (3 assertions)
[95/121]: test/sql/storage/compression/alp/alp_read.test_slow (12 assertions)
[96/121]: test/sql/storage/external_file_cache/external_file_cache_read_blob.test_slow (SKIPPED)
[97/121]: test/sql/storage/external_file_cache/external_file_cache_httpfs.test (SKIPPED)
[98/121]: test/sql/storage/invalid_unicode_scrambled.test_slow (1 assertion )
[99/121]: test/extension/autoloading_current_setting.test (SKIPPED)
[100/121]: test/extension/duckdb_extension_settings.test (SKIPPED)
[101/121]: test/extension/autoloading_load_only.test (SKIPPED)
[102/121]: test/extension/autoloading_filesystems.test (SKIPPED)
[103/121]: test/extension/autoloading_reset_setting.test (SKIPPED)
[104/121]: test/extension/autoloading_base.test (SKIPPED)
[105/121]: test/db-benchmark/join.test_slow (34 assertions)
[106/121]: test/db-benchmark/groupby.test_slow (48 assertions)
[107/121]: test/parquet/parquet_long_string_stats.test (4 assertions)
[108/121]: /home/runner/work/duckdb/duckdb/build/release/_deps/httpfs_extension_fc-src/test/sql/secret/gcs_oauth.test (17 assertions)
[109/121]: /home/runner/work/duckdb/duckdb/build/release/_deps/httpfs_extension_fc-src/test/sql/secret/secret_aws.test (16 assertions)
[110/121]: /home/runner/work/duckdb/duckdb/build/release/_deps/httpfs_extension_fc-src/test/sql/secret/secret_refresh_attach.test (6 assertions)
[111/121]: /home/runner/work/duckdb/duckdb/build/release/_deps/httpfs_extension_fc-src/test/sql/secret/secret_s3_requester_pays.test (7 assertions)
[112/121]: /home/runner/work/duckdb/duckdb/build/release/_deps/httpfs_extension_fc-src/test/sql/secret/secret_refresh.test (20 assertions)
[113/121]: /home/runner/work/duckdb/duckdb/build/release/_deps/httpfs_extension_fc-src/test/sql/secret/test_secret_type.test (12 assertions)
[114/121]: /home/runner/work/duckdb/duckdb/build/release/_deps/httpfs_extension_fc-src/test/sql/httpfs_client/httpfs_client_implementation.test (3 assertions)
[115/121]: /home/runner/work/duckdb/duckdb/build/release/_deps/httpfs_extension_fc-src/test/sql/full_file_download_fallback.test (SKIPPED)
[116/121]: /home/runner/work/duckdb/duckdb/build/release/_deps/httpfs_extension_fc-src/test/sql/curl_client/test_load_other_extensions.test (2 assertions)
[117/121]: /home/runner/work/duckdb/duckdb/build/release/_deps/httpfs_extension_fc-src/test/sql/copy/csv/test_csv_httpfs.test (3425 assertions)
[118/121]: /home/runner/work/duckdb/duckdb/build/release/_deps/httpfs_extension_fc-src/test/sql/copy/no_head_on_write.test (15 assertions)
[119/121]: /home/runner/work/duckdb/duckdb/build/release/_deps/httpfs_extension_fc-src/test/sql/metadata_stats.test (4 assertions)
[120/121]: /home/runner/work/duckdb/duckdb/build/release/_deps/httpfs_extension_fc-src/test/sql/test_headers_parsed.test (30 assertions)
[0/15]: Test secret lookups by secret type (5 assertions)
[1/15]: Test adding a custom secret storage (31 assertions)
[2/15]: Test tie-break behaviour for custom secret storage (26 assertions)
[3/15]: Secret storage tie-break penalty collision: manager loaded after (2 assertions)
[4/15]: Secret storage tie-break penalty collision: manager loaded before (3 assertions)
[5/15]: Secret storage name collision: manager loaded before (3 assertions)
[6/15]: Secret storage name collision: manager loaded after (2 assertions)
[7/15]: Test file permissions on linux/macos (6 assertions)
[8/15]: Test that DuckDB rejects secrets with incorrect permissions on linux/macos (30 assertions)
[9/15]: /home/runner/work/duckdb/duckdb/build/release/_deps/httpfs_extension_fc-src/test/sql/secret/gcs_oauth.test (17 assertions)
[10/15]: /home/runner/work/duckdb/duckdb/build/release/_deps/httpfs_extension_fc-src/test/sql/secret/secret_aws.test (16 assertions)
[11/15]: /home/runner/work/duckdb/duckdb/build/release/_deps/httpfs_extension_fc-src/test/sql/secret/secret_refresh_attach.test (6 assertions)
[12/15]: /home/runner/work/duckdb/duckdb/build/release/_deps/httpfs_extension_fc-src/test/sql/secret/secret_s3_requester_pays.test (7 assertions)
[13/15]: /home/runner/work/duckdb/duckdb/build/release/_deps/httpfs_extension_fc-src/test/sql/secret/secret_refresh.test (20 assertions)
[14/15]: /home/runner/work/duckdb/duckdb/build/release/_deps/httpfs_extension_fc-src/test/sql/secret/test_secret_type.test (12 assertions)

Mytherin added a commit to duckdb/duckdb that referenced this pull request Sep 25, 2025
For a while `httpfs` has been in a weird limbo land where the extension
has moved out-of-tree, but the tests still resided in the main DuckDB
repo. This is now fixed by
duckdb/duckdb-httpfs#132 - so we can remove all
of the tests from the main DuckDB repo.
@carlopi
Copy link
Collaborator

carlopi commented Sep 26, 2025

Removed skipped error messages in #136

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants