import testing ; import feature : feature ; use-project /torrent : .. ; exe test_natpmp : test_natpmp.cpp /torrent//torrent : multi on full ; exe enum_if : enum_if.cpp /torrent//torrent : multi on full ; exe bdecode_benchmark : test_bdecode_performance.cpp /torrent//torrent : release ; explicit test_natpmp ; explicit enum_if ; explicit bdecode_benchmark ; rule link_test ( properties * ) { local result ; if shared in $(properties) { result += libtorrent_test/shared ; } else { result += libtorrent_test/static ; } return $(result) ; } rule link_libtorrent ( properties * ) { local result ; if shared in $(properties) { result += /torrent//torrent/shared/on/shared/on ; } else { result += /torrent//torrent/static/on/static/on ; } return $(result) ; } lib libtorrent_test : # sources test.cpp setup_transfer.cpp dht_server.cpp udp_tracker.cpp peer_server.cpp web_seed_suite.cpp swarm_suite.cpp test_utils.cpp : # requirements # this is used to determine whether # symbols are exported or imported shared:TORRENT_BUILDING_TEST_SHARED shared:ED25519_BUILD_DLL ../ed25519/src windows:advapi32 @link_libtorrent : # default build shared on : # user-requirements shared:TORRENT_LINK_TEST_SHARED on ; explicit libtorrent_test ; lib advapi32 : : Advapi32 ; project : requirements main.cpp @link_test @link_libtorrent : default-build multi full on shared on ; feature launcher : none valgrind : composite ; feature.compose valgrind : "valgrind --tool=memcheck -v --num-callers=20 --read-var-info=yes --track-origins=yes --error-exitcode=222 --suppressions=valgrind_suppressions.txt" on ; test-suite libtorrent : [ run test_primitives.cpp test_packet_buffer.cpp test_timestamp_history.cpp test_sha1_hash.cpp test_bloom_filter.cpp test_identify_client.cpp test_merkle.cpp test_alert_manager.cpp test_resolve_links.cpp test_crc32.cpp test_heterogeneous_queue.cpp test_ip_voter.cpp test_sliding_average.cpp test_socket_io.cpp test_random.cpp test_utf8.cpp test_gzip.cpp test_bitfield.cpp test_part_file.cpp test_peer_list.cpp test_torrent_info.cpp test_time.cpp test_file_storage.cpp test_peer_priority.cpp test_threads.cpp test_tailqueue.cpp test_bandwidth_limiter.cpp test_buffer.cpp test_piece_picker.cpp test_bencoding.cpp test_bdecode.cpp test_http_parser.cpp test_string.cpp test_magnet.cpp test_xml.cpp test_ip_filter.cpp test_hasher.cpp test_dht.cpp test_block_cache.cpp test_peer_classes.cpp test_settings_pack.cpp test_fence.cpp test_dos_blocker.cpp ] [ run test_storage.cpp ] [ run test_session.cpp ] [ run test_read_piece.cpp ] [ run test_file.cpp ] [ run test_stat_cache.cpp ] [ run test_fast_extension.cpp ] [ run test_privacy.cpp ] [ run test_recheck.cpp ] [ run test_resume.cpp ] [ run test_ssl.cpp ] [ run test_tracker.cpp ] [ run test_checking.cpp ] [ run test_url_seed.cpp ] [ run test_web_seed.cpp ] [ run test_web_seed_redirect.cpp ] [ run test_web_seed_socks4.cpp ] [ run test_web_seed_socks5.cpp ] [ run test_web_seed_socks5_pw.cpp ] [ run test_web_seed_http.cpp ] [ run test_web_seed_http_pw.cpp ] [ run test_web_seed_chunked.cpp ] [ run test_web_seed_ban.cpp ] [ run test_pe_crypto.cpp ] [ run test_remap_files.cpp ] [ run test_utp.cpp ] [ run test_auto_unchoke.cpp ] [ run test_http_connection.cpp ] [ run test_torrent.cpp ] [ run test_transfer.cpp ] [ run test_metadata_extension.cpp ] [ run test_trackers_extension.cpp ] [ run test_time_critical.cpp ] [ run test_pex.cpp ] [ run test_priority.cpp ] [ run test_swarm.cpp ] [ run test_super_seeding.cpp ] # make these test more reliable # [ run test_upnp.cpp ] # [ run test_lsd.cpp ] ;