merged RC_1_1
This commit is contained in:
commit
c98b700d4f
|
@ -135,9 +135,7 @@ namespace libtorrent {
|
||||||
|
|
||||||
// this mutex protects everything. Since it's held while executing user
|
// this mutex protects everything. Since it's held while executing user
|
||||||
// callbacks (the notify function and extension on_alert()) it must be
|
// callbacks (the notify function and extension on_alert()) it must be
|
||||||
// recursive to post new alerts. This is implemented by storing the
|
// recursive to support recursively post new alerts.
|
||||||
// current thread-id in m_mutex_holder, if it matches ours, we don't need
|
|
||||||
// to lock
|
|
||||||
mutable std::recursive_mutex m_mutex;
|
mutable std::recursive_mutex m_mutex;
|
||||||
std::condition_variable_any m_condition;
|
std::condition_variable_any m_condition;
|
||||||
std::atomic<alert_category_t> m_alert_mask;
|
std::atomic<alert_category_t> m_alert_mask;
|
||||||
|
|
|
@ -96,6 +96,25 @@ TORRENT_TEST(seed_mode_disable_hash_checks)
|
||||||
{ return false; });
|
{ return false; });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TORRENT_TEST(seed_mode_suggest)
|
||||||
|
{
|
||||||
|
setup_swarm(2, swarm_test::upload
|
||||||
|
// add session
|
||||||
|
, [](lt::settings_pack& pack) {
|
||||||
|
pack.set_int(settings_pack::suggest_mode, settings_pack::suggest_read_cache);
|
||||||
|
pack.set_int(settings_pack::cache_size, 2);
|
||||||
|
}
|
||||||
|
// add torrent
|
||||||
|
, [](lt::add_torrent_params& params) {
|
||||||
|
params.flags |= torrent_flags::seed_mode;
|
||||||
|
}
|
||||||
|
// on alert
|
||||||
|
, [](lt::alert const* a, lt::session& ses) {}
|
||||||
|
// terminate
|
||||||
|
, [](int ticks, lt::session& ses) -> bool
|
||||||
|
{ return true; });
|
||||||
|
}
|
||||||
|
|
||||||
TORRENT_TEST(plain)
|
TORRENT_TEST(plain)
|
||||||
{
|
{
|
||||||
setup_swarm(2, swarm_test::download
|
setup_swarm(2, swarm_test::download
|
||||||
|
@ -167,6 +186,7 @@ TORRENT_TEST(suggest)
|
||||||
, [](lt::settings_pack& pack) {
|
, [](lt::settings_pack& pack) {
|
||||||
pack.set_int(settings_pack::suggest_mode, settings_pack::suggest_read_cache);
|
pack.set_int(settings_pack::suggest_mode, settings_pack::suggest_read_cache);
|
||||||
pack.set_int(settings_pack::max_suggest_pieces, 10);
|
pack.set_int(settings_pack::max_suggest_pieces, 10);
|
||||||
|
pack.set_int(settings_pack::cache_size, 2);
|
||||||
}
|
}
|
||||||
// add torrent
|
// add torrent
|
||||||
, [](lt::add_torrent_params&) {}
|
, [](lt::add_torrent_params&) {}
|
||||||
|
@ -362,7 +382,7 @@ TORRENT_TEST(stop_start_seed_graceful)
|
||||||
|
|
||||||
TORRENT_TEST(shutdown)
|
TORRENT_TEST(shutdown)
|
||||||
{
|
{
|
||||||
setup_swarm(2, swarm_test::download
|
setup_swarm(4, swarm_test::download
|
||||||
// add session
|
// add session
|
||||||
, [](lt::settings_pack&) {}
|
, [](lt::settings_pack&) {}
|
||||||
// add torrent
|
// add torrent
|
||||||
|
|
|
@ -35,6 +35,7 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include "libtorrent/torrent_info.hpp"
|
#include "libtorrent/torrent_info.hpp"
|
||||||
#include "libtorrent/create_torrent.hpp"
|
#include "libtorrent/create_torrent.hpp"
|
||||||
#include "libtorrent/bencode.hpp"
|
#include "libtorrent/bencode.hpp"
|
||||||
|
#include "libtorrent/announce_entry.hpp"
|
||||||
#include "libtorrent/aux_/escape_string.hpp" // for convert_path_to_posix
|
#include "libtorrent/aux_/escape_string.hpp" // for convert_path_to_posix
|
||||||
#include "libtorrent/announce_entry.hpp"
|
#include "libtorrent/announce_entry.hpp"
|
||||||
|
|
||||||
|
@ -98,3 +99,23 @@ TORRENT_TEST(piece_size)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TORRENT_TEST(create_torrent_round_trip)
|
||||||
|
{
|
||||||
|
char const test_torrent[] = "d8:announce26:udp://testurl.com/announce7:comment22:this is a test comment13:creation datei1337e4:infod6:lengthi12345e4:name6:foobar12:piece lengthi65536e6:pieces20:ababababababababababee";
|
||||||
|
lt::torrent_info info1(test_torrent, lt::from_span);
|
||||||
|
TEST_EQUAL(info1.comment(), "this is a test comment");
|
||||||
|
TEST_EQUAL(info1.trackers().size(), 1);
|
||||||
|
TEST_EQUAL(info1.trackers().front().url, "udp://testurl.com/announce");
|
||||||
|
|
||||||
|
lt::create_torrent t(info1);
|
||||||
|
|
||||||
|
std::vector<char> buffer;
|
||||||
|
lt::bencode(std::back_inserter(buffer), t.generate());
|
||||||
|
lt::torrent_info info2(buffer, lt::from_span);
|
||||||
|
|
||||||
|
TEST_EQUAL(info2.comment(), "this is a test comment");
|
||||||
|
TEST_EQUAL(info2.trackers().size(), 1);
|
||||||
|
TEST_EQUAL(info2.trackers().front().url, "udp://testurl.com/announce");
|
||||||
|
TEST_CHECK(info1.info_hash() == info2.info_hash());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue