From 11aa4ee66a42cb3f25a1e66ba0656b679936cc79 Mon Sep 17 00:00:00 2001 From: Alden Torres Date: Mon, 29 Jan 2018 06:40:44 -0500 Subject: [PATCH] fixing warnings in tests code, part6 (#2745) --- test/test_buffer.cpp | 14 +++--- test/test_dht.cpp | 93 +++++++++++++++++++++---------------- test/test_piece_picker.cpp | 40 ++++++++-------- test/test_recheck.cpp | 4 +- test/test_resolve_links.cpp | 6 +-- test/test_storage.cpp | 3 +- test/test_utf8.cpp | 37 ++++++++------- 7 files changed, 106 insertions(+), 91 deletions(-) diff --git a/test/test_buffer.cpp b/test/test_buffer.cpp index f990ae009..4eb62d6ee 100644 --- a/test/test_buffer.cpp +++ b/test/test_buffer.cpp @@ -90,7 +90,7 @@ TORRENT_TEST(buffer_subscript) TEST_CHECK(b.size() >= 50); for (int i = 0; i < int(sizeof(data)/sizeof(data[0])); ++i) - TEST_CHECK(b[i] == data[i]); + TEST_CHECK(b[std::size_t(i)] == data[i]); } TORRENT_TEST(buffer_subscript2) @@ -99,10 +99,10 @@ TORRENT_TEST(buffer_subscript2) TEST_CHECK(b.size() >= 1); for (int i = 0; i < int(b.size()); ++i) - b[i] = i & 0xff; + b[std::size_t(i)] = char(i & 0xff); for (int i = 0; i < int(b.size()); ++i) - TEST_CHECK(b[i] == (i & 0xff)); + TEST_CHECK(b[std::size_t(i)] == (i & 0xff)); } TORRENT_TEST(buffer_move_construct) @@ -113,7 +113,7 @@ TORRENT_TEST(buffer_move_construct) buffer b2(std::move(b1)); - TEST_CHECK(b1.size() == 0); + TEST_CHECK(b1.empty()); TEST_CHECK(std::memcmp(b2.data(), data, 10) == 0); TEST_CHECK(b2.size() >= 50); @@ -152,7 +152,7 @@ void free_buffer(char* m) char* allocate_buffer(int size) { - char* mem = (char*)std::malloc(size); + char* mem = static_cast(std::malloc(std::size_t(size))); buffer_list.insert(mem); return mem; } @@ -174,11 +174,11 @@ int copy_buffers(T const& b, char* target) bool compare_chained_buffer(chained_buffer& b, char const* mem, int size) { if (size == 0) return true; - std::vector flat(size); + std::vector flat((std::size_t(size))); std::vector const& iovec2 = b.build_iovec(size); int copied = copy_buffers(iovec2, &flat[0]); TEST_CHECK(copied == size); - return std::memcmp(&flat[0], mem, size) == 0; + return std::memcmp(&flat[0], mem, std::size_t(size)) == 0; } struct holder diff --git a/test/test_dht.cpp b/test/test_dht.cpp index 33f75c3c0..4560b4f56 100644 --- a/test/test_dht.cpp +++ b/test/test_dht.cpp @@ -95,8 +95,9 @@ void add_and_replace(node_id& dst, node_id const& add) bool carry = false; for (int k = 19; k >= 0; --k) { - int sum = dst[k] + add[k] + (carry ? 1 : 0); - dst[k] = sum & 255; + std::size_t idx = std::size_t(k); + int sum = dst[idx] + add[idx] + (carry ? 1 : 0); + dst[idx] = sum & 255; carry = sum > 255; } } @@ -115,7 +116,7 @@ std::list> g_sent_packets; struct mock_socket final : socket_manager { bool has_quota() override { return true; } - bool send_packet(aux::listen_socket_handle const& s, entry& msg, udp::endpoint const& ep) override + bool send_packet(aux::listen_socket_handle const&, entry& msg, udp::endpoint const& ep) override { // TODO: 3 ideally the mock_socket would contain this queue of packets, to // make tests independent @@ -161,7 +162,7 @@ node* get_foreign_node_stub(node_id const&, std::string const&) sha1_hash generate_next() { sha1_hash ret; - for (int i = 0; i < 20; ++i) ret[i] = rand() & 0xff; + aux::random_bytes(ret); return ret; } @@ -191,7 +192,7 @@ entry write_peers(std::set const& peers) std::string endpoint(18, '\0'); std::string::iterator out = endpoint.begin(); lt::detail::write_endpoint(p, out); - endpoint.resize(out - endpoint.begin()); + endpoint.resize(std::size_t(out - endpoint.begin())); pe.push_back(entry(endpoint)); } return r; @@ -520,19 +521,19 @@ void put_immutable_item_cb(int num, int expect) struct obs : dht::dht_observer { void set_external_address(aux::listen_socket_handle const& s, address const& addr - , address const& source) override + , address const& /*source*/) override { s.get()->external_address.cast_vote(addr , aux::session_interface::source_dht, rand_v4()); } - void get_peers(sha1_hash const& ih) override {} - void outgoing_get_peers(sha1_hash const& target - , sha1_hash const& sent_target, udp::endpoint const& ep) override {} - void announce(sha1_hash const& ih, address const& addr, int port) override {} + void get_peers(sha1_hash const&) override {} + void outgoing_get_peers(sha1_hash const& /*target*/ + , sha1_hash const& /*sent_target*/, udp::endpoint const&) override {} + void announce(sha1_hash const&, address const&, int) override {} #ifndef TORRENT_DISABLE_LOGGING bool should_log(module_t) const override { return true; } - void log(dht_logger::module_t l, char const* fmt, ...) override + void log(dht_logger::module_t, char const* fmt, ...) override { va_list v; va_start(v, fmt); @@ -542,11 +543,13 @@ struct obs : dht::dht_observer std::printf("%s\n", buf); m_log.push_back(buf); } - void log_packet(message_direction_t dir, span pkt - , udp::endpoint const& node) override {} + void log_packet(message_direction_t, span + , udp::endpoint const&) override {} #endif - bool on_dht_request(string_view query - , dht::msg const& request, entry& response) override { return false; } + bool on_dht_request(string_view + , dht::msg const&, entry&) override { return false; } + + virtual ~obs() = default; #ifndef TORRENT_DISABLE_LOGGING std::vector m_log; @@ -932,6 +935,8 @@ TORRENT_TEST(get_peers_announce) } } +namespace { + void test_scrape(address(&rand_addr)()) { dht_test_setup t(udp::endpoint(rand_addr(), 20)); @@ -1001,8 +1006,8 @@ void test_scrape(address(&rand_addr)()) downloaders.from_string(peer2_keys[2].string_ptr()); seeds.from_string(peer2_keys[3].string_ptr()); - std::printf("seeds: %f\n", seeds.size()); - std::printf("downloaders: %f\n", downloaders.size()); + std::printf("seeds: %f\n", double(seeds.size())); + std::printf("downloaders: %f\n", double(downloaders.size())); TEST_CHECK(fabs(seeds.size() - 50.f) <= 3.f); TEST_CHECK(fabs(downloaders.size() - 50.f) <= 3.f); @@ -1014,6 +1019,8 @@ void test_scrape(address(&rand_addr)()) } } +} // anonymous namespace + TORRENT_TEST(scrape_v4) { test_scrape(rand_v4); @@ -1027,6 +1034,8 @@ TORRENT_TEST(scrape_v6) } #endif +namespace { + void test_id_enforcement(address(&rand_addr)()) { dht_test_setup t(udp::endpoint(rand_addr(), 20)); @@ -1118,6 +1127,8 @@ void test_id_enforcement(address(&rand_addr)()) TEST_EQUAL(std::get<0>(t.dht_node.size()), nodes_num + 1); } +} // anonymous namespace + TORRENT_TEST(id_enforcement_v4) { test_id_enforcement(rand_v4); @@ -1410,7 +1421,7 @@ void test_put(address(&rand_addr)()) char* ptr = value; int const value_len = bencode(ptr, items[0].ent); TEST_EQUAL(value_len, int(desc3_keys[2].data_section().size())); - TEST_CHECK(memcmp(desc3_keys[2].data_section().data(), value, value_len) == 0); + TEST_CHECK(std::memcmp(desc3_keys[2].data_section().data(), value, std::size_t(value_len)) == 0); TEST_EQUAL(int(seq.value), desc3_keys[3].int_value()); } @@ -2475,14 +2486,14 @@ TORRENT_TEST(mutable_put) enum { num_test_nodes = 8 }; std::array const nodes = build_nodes(); - for (int i = 0; i < num_test_nodes; ++i) - t.dht_node.m_table.add_node(nodes[i]); + for (auto const& n : nodes) + t.dht_node.m_table.add_node(n); g_put_item.assign(items[0].ent, empty_salt, seq, pk, sk); signature const sig = g_put_item.sig(); t.dht_node.put_item(pk, std::string() - , std::bind(&put_mutable_item_cb, _1, _2, loop) - , put_mutable_item_data_cb); + , std::bind(&put_mutable_item_cb, _1, _2, loop) + , put_mutable_item_data_cb); TEST_EQUAL(g_sent_packets.size(), 8); if (g_sent_packets.size() != 8) break; @@ -2583,11 +2594,11 @@ TORRENT_TEST(traversal_done) // invert the ith most significant byte so that the test nodes are // progressively closer to the target item - for (int i = 0; i < num_test_nodes; ++i) + for (std::size_t i = 0; i < num_test_nodes; ++i) nodes[i].id[i] = ~nodes[i].id[i]; // add the first k nodes to the subject's routing table - for (int i = 0; i < 8; ++i) + for (std::size_t i = 0; i < 8; ++i) t.dht_node.m_table.add_node(nodes[i]); // kick off a mutable put request @@ -2623,13 +2634,13 @@ TORRENT_TEST(traversal_done) std::snprintf(tok, sizeof(tok), "%02d", i); msg_args args; - args.token(tok).port(1234).nid(nodes[i].id); + args.token(tok).port(1234).nid(nodes[std::size_t(i)].id); // add the address of the closest node to the first response if (i == 1) args.nodes({nodes[8]}); - send_dht_response(t.dht_node, response, nodes[i].ep(), args); + send_dht_response(t.dht_node, response, nodes[std::size_t(i)].ep(), args); g_sent_packets.erase(packet); // once we've sent the response from the farthest node, we're done @@ -3027,7 +3038,7 @@ TORRENT_TEST(routing_table_balance) // and make sure we don't end up with a table completely out of balance for (int i = 0; i < 32; ++i) { - id[4] = i; + id[4] = i & 0xff; tbl.node_seen(id, rand_udp_ep(), 20 + (id[19] & 0xff)); } std::printf("num_active_buckets: %d\n", tbl.num_active_buckets()); @@ -3048,7 +3059,7 @@ TORRENT_TEST(routing_table_extended) // table would get unbalanced and intermediate nodes would be dropped std::vector node_id_prefix; node_id_prefix.reserve(256); - for (int i = 0; i < 256; ++i) node_id_prefix.push_back(i); + for (int i = 0; i < 256; ++i) node_id_prefix.push_back(i & 0xff); aux::random_shuffle(node_id_prefix.begin(), node_id_prefix.end()); routing_table tbl(id, udp::v4(), 8, sett, &observer); @@ -3126,7 +3137,7 @@ TORRENT_TEST(routing_table_for_each) for (int i = 0; i < 32; ++i) { - id[4] = i; + id[4] = i & 0xff; tbl.node_seen(id, rand_udp_ep(), 20 + (id[19] & 0xff)); } @@ -3305,13 +3316,13 @@ TORRENT_TEST(invalid_error_msg) node.incoming(node.m_sock, m); bool found = false; - for (int i = 0; i < int(observer.m_log.size()); ++i) + for (auto const& log : observer.m_log) { - if (observer.m_log[i].find("INCOMING ERROR") != std::string::npos - && observer.m_log[i].find("(malformed)") != std::string::npos) + if (log.find("INCOMING ERROR") != std::string::npos + && log.find("(malformed)") != std::string::npos) found = true; - std::printf("%s\n", observer.m_log[i].c_str()); + std::printf("%s\n", log.c_str()); } TEST_EQUAL(found, true); @@ -3323,7 +3334,7 @@ struct test_algo : dht::traversal_algorithm : traversal_algorithm(dht_node, target) {} - std::vector const& results() const { return m_results; }; + std::vector const& results() const { return m_results; } using traversal_algorithm::num_sorted_results; }; @@ -3350,11 +3361,11 @@ TORRENT_TEST(unsorted_traversal_results) TEST_CHECK(algo->num_sorted_results() == 0); auto results = algo->results(); TEST_CHECK(results.size() == eps.size()); - for (int i = 0; i < int(eps.size()); ++i) + for (std::size_t i = 0; i < eps.size(); ++i) TEST_CHECK(eps[i] == results[i]->target_ep()); // setting the node ID, regardless of what we set it to, should cause this - // observer to become sorted. i.e. be moved to the beginning of the restult + // observer to become sorted. i.e. be moved to the beginning of the result // list. results[5]->set_id(node_id("abababababababababab")); @@ -3415,14 +3426,14 @@ TORRENT_TEST(rpc_invalid_error_msg) rpc.incoming(m, &nid); bool found = false; - for (std::size_t i = 0; i < observer.m_log.size(); ++i) + for (auto const& log : observer.m_log) { - if (observer.m_log[i].find("reply with") != std::string::npos - && observer.m_log[i].find("(malformed)") != std::string::npos - && observer.m_log[i].find("error") != std::string::npos) + if (log.find("reply with") != std::string::npos + && log.find("(malformed)") != std::string::npos + && log.find("error") != std::string::npos) found = true; - std::printf("%s\n", observer.m_log[i].c_str()); + std::printf("%s\n", log.c_str()); } TEST_EQUAL(found, true); diff --git a/test/test_piece_picker.cpp b/test/test_piece_picker.cpp index df01b3d4d..32f384626 100644 --- a/test/test_piece_picker.cpp +++ b/test/test_piece_picker.cpp @@ -182,7 +182,7 @@ std::shared_ptr setup_picker( { int const idx = static_cast(i); if (priority[idx] == 0) break; - download_priority_t const prio(priority[idx] - '0'); + download_priority_t const prio((priority[idx] - '0') & 0xff); assert(prio >= dont_download); p->set_piece_priority(i, prio); @@ -240,8 +240,8 @@ void print_availability(std::shared_ptr const& p) aux::vector avail; p->get_availability(avail); std::printf("[ "); - for (auto p : avail) - std::printf("%d ", static_cast(p)); + for (auto i : avail) + std::printf("%d ", i); std::printf("]\n"); } @@ -269,14 +269,14 @@ std::vector pick_pieces(std::shared_ptr const& p , char const* availability , int num_blocks , int prefer_contiguous_blocks - , torrent_peer* peer_struct + , torrent_peer* peer_struct_arg , picker_options_t const options = piece_picker::rarest_first , std::vector const& suggested_pieces = empty_vector) { std::vector picked; counters pc; p->pick_pieces(string2vec(availability), picked - , num_blocks, prefer_contiguous_blocks, peer_struct + , num_blocks, prefer_contiguous_blocks, peer_struct_arg , options, suggested_pieces, 20, pc); print_pick(picked); TEST_CHECK(verify_pick(p, picked)); @@ -504,7 +504,7 @@ TORRENT_TEST(reverse_rarest_first) int expected_common_pieces[] = {3, 2, 5, 0, 6, 4, 1}; for (int i = 0; i < int(picked.size()); ++i) { - TEST_CHECK(picked[i] == piece_block(piece_index_t( + TEST_CHECK(picked[std::size_t(i)] == piece_block(piece_index_t( expected_common_pieces[i / blocks_per_piece]) , i % blocks_per_piece)); } @@ -541,7 +541,7 @@ TORRENT_TEST(pick_whole_pieces) , &peer_struct, options, empty_vector); TEST_EQUAL(int(picked.size()), 7 * blocks_per_piece); for (int i = 0; i < int(picked.size()); ++i) - TEST_CHECK(picked[i] == piece_block(piece_index_t(i / blocks_per_piece) + TEST_CHECK(picked[std::size_t(i)] == piece_block(piece_index_t(i / blocks_per_piece) , i % blocks_per_piece)); } @@ -743,7 +743,7 @@ TORRENT_TEST(sequential_download) , piece_picker::sequential, empty_vector); TEST_CHECK(int(picked.size()) == 7 * blocks_per_piece); for (int i = 0; i < int(picked.size()); ++i) - TEST_CHECK(picked[i] == piece_block(piece_index_t(i / blocks_per_piece) + TEST_CHECK(picked[std::size_t(i)] == piece_block(piece_index_t(i / blocks_per_piece) , i % blocks_per_piece)); } @@ -755,7 +755,7 @@ TORRENT_TEST(reverse_sequential_download) , piece_picker::sequential | piece_picker::reverse, empty_vector); TEST_CHECK(int(picked.size()) == 7 * blocks_per_piece); for (int i = 0; i < int(picked.size()); ++i) - TEST_CHECK(picked[i] == piece_block(piece_index_t(6 - (i / blocks_per_piece)) + TEST_CHECK(picked[std::size_t(i)] == piece_block(piece_index_t(6 - (i / blocks_per_piece)) , i % blocks_per_piece)); } @@ -772,11 +772,11 @@ TORRENT_TEST(priority_sequential_download) // the first two pieces picked should be 3 and 5 since those have priority 7 for (int i = 0; i < 2 * blocks_per_piece; ++i) - TEST_CHECK(picked[i].piece_index == piece_index_t(3) || picked[i].piece_index == piece_index_t(5)); + TEST_CHECK(picked[std::size_t(i)].piece_index == piece_index_t(3) || picked[std::size_t(i)].piece_index == piece_index_t(5)); int expected[] = {-1, -1, 0, 1, 2, 6}; for (int i = 2 * blocks_per_piece; i < int(picked.size()); ++i) - TEST_EQUAL(picked[i].piece_index, piece_index_t(expected[i / blocks_per_piece])); + TEST_EQUAL(picked[std::size_t(i)].piece_index, piece_index_t(expected[i / blocks_per_piece])); } TORRENT_TEST(cursors_sweep_up_we_have) @@ -1010,7 +1010,7 @@ TORRENT_TEST(piece_priorities) TEST_CHECK(int(picked.size()) == 7 * blocks_per_piece); for (int i = 0; i < int(picked.size()); ++i) - TEST_CHECK(picked[i] == piece_block(piece_index_t(i / blocks_per_piece), i % blocks_per_piece)); + TEST_CHECK(picked[std::size_t(i)] == piece_block(piece_index_t(i / blocks_per_piece), i % blocks_per_piece)); // test changing priority on a piece we have p->we_have(piece_index_t(0)); @@ -1336,7 +1336,7 @@ TORRENT_TEST(prefer_cnotiguous_blocks) , nullptr, options, empty_vector); TEST_CHECK(int(picked.size()) >= 3 * blocks_per_piece); piece_block b = picked.front(); - for (int i = 1; i < int(picked.size()); ++i) + for (std::size_t i = 1; i < picked.size(); ++i) { TEST_CHECK(static_cast(picked[i].piece_index) * blocks_per_piece + picked[i].block_index == static_cast(b.piece_index) * blocks_per_piece + b.block_index + 1); @@ -1347,7 +1347,7 @@ TORRENT_TEST(prefer_cnotiguous_blocks) , nullptr, options, empty_vector); TEST_CHECK(int(picked.size()) >= 3 * blocks_per_piece); b = picked.front(); - for (int i = 1; i < int(picked.size()); ++i) + for (std::size_t i = 1; i < picked.size(); ++i) { TEST_CHECK(static_cast(picked[i].piece_index) * blocks_per_piece + picked[i].block_index == static_cast(b.piece_index) * blocks_per_piece + b.block_index + 1); @@ -1376,7 +1376,7 @@ TORRENT_TEST(prefer_aligned_whole_pieces) TEST_EQUAL(picked.size(), 4 * blocks_per_piece); std::set picked_pieces; - for (auto p : picked) picked_pieces.insert(p.piece_index); + for (auto idx : picked) picked_pieces.insert(idx.piece_index); TEST_CHECK(picked_pieces.size() == 4); piece_index_t expected_pieces[] = {piece_index_t(4),piece_index_t(5),piece_index_t(6),piece_index_t(7)}; @@ -1393,7 +1393,7 @@ TORRENT_TEST(parole_mode) , options | piece_picker::on_parole | piece_picker::prioritize_partials, empty_vector); TEST_EQUAL(int(picked.size()), blocks_per_piece - 1); for (int i = 1; i < int(picked.size()); ++i) - TEST_CHECK(picked[i] == piece_block(piece_index_t(0), i + 1)); + TEST_CHECK(picked[std::size_t(i)] == piece_block(piece_index_t(0), i + 1)); // make sure that the partial piece is not picked by a // peer that is has not downloaded/requested the other blocks @@ -1402,7 +1402,7 @@ TORRENT_TEST(parole_mode) , options | piece_picker::on_parole | piece_picker::prioritize_partials, empty_vector); TEST_EQUAL(int(picked.size()), blocks_per_piece); for (int i = 1; i < int(picked.size()); ++i) - TEST_CHECK(picked[i] == piece_block(piece_index_t(4), i)); + TEST_CHECK(picked[std::size_t(i)] == piece_block(piece_index_t(4), i)); } TORRENT_TEST(suggested_pieces) @@ -1416,7 +1416,7 @@ TORRENT_TEST(suggested_pieces) , nullptr, options, suggested_pieces); TEST_CHECK(int(picked.size()) >= blocks_per_piece); for (int i = 1; i < int(picked.size()); ++i) - TEST_CHECK(picked[i] == piece_block(piece_index_t(1), i)); + TEST_CHECK(picked[std::size_t(i)] == piece_block(piece_index_t(1), i)); p->set_piece_priority(piece_index_t(0), dont_download); p->set_piece_priority(piece_index_t(1), dont_download); p->set_piece_priority(piece_index_t(2), dont_download); @@ -1426,14 +1426,14 @@ TORRENT_TEST(suggested_pieces) , nullptr, options, suggested_pieces); TEST_CHECK(int(picked.size()) >= blocks_per_piece); for (int i = 1; i < int(picked.size()); ++i) - TEST_CHECK(picked[i] == piece_block(piece_index_t(5), i)); + TEST_CHECK(picked[std::size_t(i)] == piece_block(piece_index_t(5), i)); p = setup_picker("1111222233334444", "**** ", "", ""); picked = pick_pieces(p, "****************", 1, blocks_per_piece , nullptr, options, suggested_pieces); TEST_CHECK(int(picked.size()) >= blocks_per_piece); for (int i = 1; i < int(picked.size()); ++i) - TEST_CHECK(picked[i] == piece_block(piece_index_t(5), i)); + TEST_CHECK(picked[std::size_t(i)] == piece_block(piece_index_t(5), i)); } TORRENT_TEST(bitfield_optimization) diff --git a/test/test_recheck.cpp b/test/test_recheck.cpp index ad04234bb..4faf61294 100644 --- a/test/test_recheck.cpp +++ b/test/test_recheck.cpp @@ -62,8 +62,8 @@ void wait_for_complete(lt::session& ses, torrent_handle h) print_alerts(ses, "ses1"); torrent_status st = h.status(); std::printf("%f s - %f %%\n" - , total_milliseconds(clock_type::now() - last_change) / 1000.f - , st.progress_ppm / 10000.f); + , total_milliseconds(clock_type::now() - last_change) / 1000.0 + , st.progress_ppm / 10000.0); if (st.progress_ppm == 1000000) return; if (st.progress_ppm != last_progress) { diff --git a/test/test_resolve_links.cpp b/test/test_resolve_links.cpp index c3c7e6d26..da718d225 100644 --- a/test/test_resolve_links.cpp +++ b/test/test_resolve_links.cpp @@ -112,8 +112,8 @@ TORRENT_TEST(resolve_links) aux::vector const& links = l.get_links(); - std::string::size_type num_matches = std::count_if(links.begin(), links.end() - , std::bind(&resolve_links::link_t::ti, _1)); + auto const num_matches = std::size_t(std::count_if(links.begin(), links.end() + , std::bind(&resolve_links::link_t::ti, _1))); // some debug output in case the test fails if (num_matches > e.expected_matches) @@ -166,7 +166,7 @@ TORRENT_TEST(range_lookup_duplicated_files) aux::vector const& links = l.get_links(); - std::string::size_type num_matches = std::count_if(links.begin(), links.end() + auto const num_matches = std::count_if(links.begin(), links.end() , std::bind(&resolve_links::link_t::ti, _1)); TEST_EQUAL(num_matches, 1); diff --git a/test/test_storage.cpp b/test/test_storage.cpp index c6b15168c..9d7c4721d 100644 --- a/test/test_storage.cpp +++ b/test/test_storage.cpp @@ -188,6 +188,7 @@ void run_storage_tests(std::shared_ptr info , bool unbuffered) { TORRENT_ASSERT(fs.num_files() > 0); + { error_code ec; create_directory(combine_path(test_path, "temp_storage"), ec); if (ec) std::cout << "create_directory '" << combine_path(test_path, "temp_storage") @@ -200,7 +201,7 @@ void run_storage_tests(std::shared_ptr info if (ec && ec != boost::system::errc::no_such_file_or_directory) std::cout << "remove_all '" << combine_path(test_path, "part0") << "': " << ec.message() << std::endl; - + } int num_pieces = fs.num_pieces(); TEST_CHECK(info->num_pieces() == num_pieces); diff --git a/test/test_utf8.cpp b/test/test_utf8.cpp index f8014d5ac..be8ff7b6c 100644 --- a/test/test_utf8.cpp +++ b/test/test_utf8.cpp @@ -40,6 +40,8 @@ POSSIBILITY OF SUCH DAMAGE. using namespace lt; +namespace { + void verify_transforms(char const* utf8_source, int utf8_source_len = -1) { if (utf8_source_len == -1) @@ -47,8 +49,8 @@ void verify_transforms(char const* utf8_source, int utf8_source_len = -1) // utf8 -> utf16 -> utf32 -> utf8 { - std::vector utf16(utf8_source_len); - UTF8 const* in8 = (UTF8 const*)utf8_source; + std::vector utf16((std::size_t(utf8_source_len))); + UTF8 const* in8 = reinterpret_cast(utf8_source); UTF16* out16 = &utf16[0]; ConversionResult ret = ConvertUTF8toUTF16(&in8, in8 + utf8_source_len , &out16, out16 + utf16.size(), strictConversion); @@ -60,7 +62,7 @@ void verify_transforms(char const* utf8_source, int utf8_source_len = -1) std::printf("%x ", UTF8(*i)); } - std::vector utf32(utf8_source_len); + std::vector utf32((std::size_t(utf8_source_len))); UTF16 const* in16 = &utf16[0]; UTF32* out32 = &utf32[0]; ret = ConvertUTF16toUTF32(&in16, out16 @@ -73,7 +75,7 @@ void verify_transforms(char const* utf8_source, int utf8_source_len = -1) std::printf("%x ", UTF8(*i)); } - std::vector utf8(utf8_source_len); + std::vector utf8((std::size_t(utf8_source_len))); UTF32 const* in32 = &utf32[0]; UTF8* out8 = &utf8[0]; ret = ConvertUTF32toUTF8(&in32, out32 @@ -87,13 +89,13 @@ void verify_transforms(char const* utf8_source, int utf8_source_len = -1) } TEST_EQUAL(out8 - &utf8[0], utf8_source_len); - TEST_CHECK(std::equal(&utf8[0], out8, (UTF8 const*)utf8_source)); + TEST_CHECK(std::equal(&utf8[0], out8, reinterpret_cast(utf8_source))); } // utf8 -> utf32 -> utf16 -> utf8 { - std::vector utf32(utf8_source_len); - UTF8 const* in8 = (UTF8 const*)utf8_source; + std::vector utf32((std::size_t(utf8_source_len))); + UTF8 const* in8 = reinterpret_cast(utf8_source); UTF32* out32 = &utf32[0]; ConversionResult ret = ConvertUTF8toUTF32(&in8, in8 + utf8_source_len , &out32, out32 + utf32.size(), strictConversion); @@ -105,7 +107,7 @@ void verify_transforms(char const* utf8_source, int utf8_source_len = -1) std::printf("%x ", UTF8(*i)); } - std::vector utf16(utf8_source_len); + std::vector utf16((std::size_t(utf8_source_len))); UTF32 const* in32 = &utf32[0]; UTF16* out16 = &utf16[0]; ret = ConvertUTF32toUTF16(&in32, out32 @@ -118,7 +120,7 @@ void verify_transforms(char const* utf8_source, int utf8_source_len = -1) std::printf("%x ", UTF8(*i)); } - std::vector utf8(utf8_source_len); + std::vector utf8((std::size_t(utf8_source_len))); UTF16 const* in16 = &utf16[0]; UTF8* out8 = &utf8[0]; ret = ConvertUTF16toUTF8(&in16, out16 @@ -132,16 +134,16 @@ void verify_transforms(char const* utf8_source, int utf8_source_len = -1) } TEST_EQUAL(out8 - &utf8[0], utf8_source_len); - TEST_CHECK(std::equal(&utf8[0], out8, (UTF8 const*)utf8_source)); + TEST_CHECK(std::equal(&utf8[0], out8, reinterpret_cast(utf8_source))); } } void expect_error(char const* utf8, ConversionResult expect) { - UTF8 const* in8 = (UTF8 const*)utf8; + UTF8 const* in8 = reinterpret_cast(utf8); std::vector utf32(strlen(utf8)); UTF32* out32 = &utf32[0]; - ConversionResult ret = ConvertUTF8toUTF32(&in8, in8 + strlen(utf8) + ConversionResult ret = ConvertUTF8toUTF32(&in8, in8 + std::strlen(utf8) , &out32, out32 + utf32.size(), strictConversion); TEST_EQUAL(ret, expect); @@ -152,10 +154,10 @@ void expect_error(char const* utf8, ConversionResult expect) std::printf("%x ", UTF8(*i)); } - in8 = (UTF8 const*)utf8; - std::vector utf16(strlen(utf8)); + in8 = reinterpret_cast(utf8); + std::vector utf16(std::strlen(utf8)); UTF16* out16 = &utf16[0]; - ret = ConvertUTF8toUTF16(&in8, in8 + strlen(utf8) + ret = ConvertUTF8toUTF16(&in8, in8 + std::strlen(utf8) , &out16, out16 + utf16.size(), strictConversion); TEST_EQUAL(ret, expect); @@ -167,6 +169,8 @@ void expect_error(char const* utf8, ConversionResult expect) } } +} // anonymous namespace + TORRENT_TEST(utf8) { std::vector utf8_source; @@ -257,7 +261,7 @@ TORRENT_TEST(invalid_encoding) 0x70, 0x2e, 0x31, 0x30, 0x38, 0x30, 0x70, 0x2e, 0x6d, 0x6b, 0x76, 0x00 }; error_code ec; - std::wstring wide = utf8_wchar((char const*)test_string, ec); + std::wstring wide = utf8_wchar(reinterpret_cast(test_string), ec); TEST_CHECK(ec); std::wstring cmp_wide; @@ -265,4 +269,3 @@ TORRENT_TEST(invalid_encoding) std::back_inserter(cmp_wide)); TEST_CHECK(wide == cmp_wide); } -