|
25 | 25 | #include "ds3_utils.h" |
26 | 26 | #include "test.h" |
27 | 27 |
|
28 | | -/* |
29 | | -BOOST_AUTO_TEST_CASE( put_directory) { |
30 | | - printf("-----Testing PUT all objects in a directory-------\n"); |
31 | | -
|
32 | | - const char* dir_path = getenv("DS3_TEST_DIRECTORY"); |
33 | | - if (dir_path == NULL) { |
34 | | - printf("ENV[DS3_TEST_DIRECTORY] unset - Skipping put_directory test.\n"); |
35 | | - return; |
36 | | - } |
37 | | -
|
38 | | - const char* bucket_name = "test_bulk_put_directory"; |
39 | | - printf(" Putting all files in [%s] to bucket [%s]\n", dir_path, bucket_name); |
40 | | -
|
41 | | - ds3_client* client = get_client(); |
42 | | - int client_thread=1; |
43 | | - ds3_client_register_logging(client, DS3_DEBUG, test_log, (void*)&client_thread); // Use DEBUG level logging |
44 | | -
|
45 | | - ds3_error* error = create_bucket_with_data_policy(client, bucket_name, ids.data_policy_id->value); |
46 | | -
|
47 | | - char* objects_list[100]; |
48 | | - uint64_t num_objs = 0; |
49 | | - GDir* dir_info = g_dir_open(dir_path, 0, NULL); |
50 | | - for (char* current_obj = (char*)g_dir_read_name(dir_info); current_obj != NULL; current_obj = (char*)g_dir_read_name(dir_info)) { |
51 | | - objects_list[num_objs++] = current_obj; |
52 | | - printf(" obj[%" PRIu64 "][%s]\n", num_objs, objects_list[num_objs-1]); |
53 | | - } |
54 | | -
|
55 | | - ds3_bulk_object_list_response* bulk_object_list = ds3_convert_file_list_with_basepath((const char**)objects_list, num_objs, dir_path); |
56 | | -
|
57 | | - ds3_request* request = ds3_init_put_bulk_job_spectra_s3_request(bucket_name, bulk_object_list); |
58 | | - ds3_master_object_list_response* mol; |
59 | | - error = ds3_put_bulk_job_spectra_s3_request(client, request, &mol); |
60 | | - ds3_request_free(request); |
61 | | - ds3_bulk_object_list_response_free(bulk_object_list); |
62 | | - handle_error(error); |
63 | | -
|
64 | | - // Allocate cache |
65 | | - ds3_master_object_list_response* chunks_list = ensure_available_chunks(client, mol->job_id); |
66 | | -
|
67 | | - // Use helper functions from test.cpp |
68 | | - GPtrArray* put_dir_args = new_put_chunks_threads_args(client, NULL, dir_path, bucket_name, mol, chunks_list, 1, True); // Last param indicates verbose logging in the spawned thread |
69 | | -
|
70 | | - // capture test start time |
71 | | - struct timespec start_time_t, end_time_t; |
72 | | - double elapsed_t; |
73 | | - clock_gettime(CLOCK_MONOTONIC, &start_time_t); |
74 | | -
|
75 | | - GThread* put_dir_xfer_thread = g_thread_new("put_dir_xfer_thread", (GThreadFunc)put_chunks_from_file, g_ptr_array_index(put_dir_args, 0)); |
76 | | -
|
77 | | - // Block and cleanup GThread(s) |
78 | | - g_thread_join(put_dir_xfer_thread); |
79 | | -
|
80 | | - // find elapsed CPU and real time |
81 | | - clock_gettime(CLOCK_MONOTONIC, &end_time_t); |
82 | | - elapsed_t = timespec_to_seconds(&end_time_t) - timespec_to_seconds(&start_time_t); |
83 | | - ds3_log_message(client->log, DS3_INFO, " Elapsed time[%f]", elapsed_t); |
84 | | -
|
85 | | - g_dir_close(dir_info); |
86 | | - ds3_master_object_list_response_free(chunks_list); |
87 | | - ds3_master_object_list_response_free(mol); |
88 | | - put_chunks_threads_args_free(put_dir_args); |
89 | | - clear_bucket(client, bucket_name); |
90 | | - free_client(client); |
91 | | -} |
92 | | -*/ |
93 | | - |
94 | 28 | BOOST_AUTO_TEST_CASE( put_directory_4_threads) { |
95 | 29 | printf("-----Testing PUT all objects in a directory with 4 threads-------\n"); |
96 | 30 |
|
97 | 31 | const char* dir_path = getenv("DS3_TEST_DIRECTORY"); |
98 | 32 | if (dir_path == NULL) { |
99 | | - printf("ENV[DS3_TEST_DIRECTORY] unset - Skipping put_directory test.\n"); |
| 33 | + printf("ENV[DS3_TEST_DIRECTORY] unset - Skipping put_directory_4_threads test.\n"); |
100 | 34 | return; |
101 | 35 | } |
102 | 36 |
|
|
0 commit comments