Squashed 'external/toxcore/c-toxcore/' changes from c9cdae001..9ed2fa80d
9ed2fa80d fix(toxav): remove extra copy of video frame on encode de30cf3ad docs: Add new file kinds, that should be useful to all clients. d5b5e879d fix(DHT): Correct node skipping logic timed out nodes. 30e71fe97 refactor: Generate event dispatch functions and add tox_events_dispatch. 8fdbb0b50 style: Format parameter lists in event handlers. d00dee12b refactor: Add warning logs when losing chat invites. b144e8db1 feat: Add a way to look up a file number by ID. 849281ea0 feat: Add a way to fetch groups by chat ID. a2c177396 refactor: Harden event system and improve type safety. 8f5caa656 refactor: Add MessagePack string support to bin_pack. 34e8d5ad5 chore: Add GitHub CodeQL workflow and local Docker runner. f7b068010 refactor: Add nullability annotations to event headers. 788abe651 refactor(toxav): Use system allocator for mutexes. 2e4b423eb refactor: Use specific typedefs for public API arrays. 2baf34775 docs(toxav): update idle iteration interval see 679444751876fa3882a717772918ebdc8f083354 2f87ac67b feat: Add Event Loop abstraction (Ev). f8dfc38d8 test: Fix data race in ToxScenario virtual_clock. 38313921e test(TCP): Add regression test for TCP priority queue integrity. f94a50d9a refactor(toxav): Replace mutable_mutex with dynamically allocated mutex. ad054511e refactor: Internalize DHT structs and add debug helpers. 8b467cc96 fix: Prevent potential integer overflow in group chat handshake. 4962bdbb8 test: Improve TCP simulation and add tests 5f0227093 refactor: Allow nullable data in group chat handlers. e97b18ea9 chore: Improve Windows Docker support. b14943bbd refactor: Move Logger out of Messenger into Tox. dd3136250 cleanup: Apply nullability qualifiers to C++ codebase. 1849f70fc refactor: Extract low-level networking code to net and os_network. 8fec75421 refactor: Delete tox_random, align on rng and os_random. a03ae8051 refactor: Delete tox_memory, align on mem and os_memory. 4c88fed2c refactor: Use `std::` prefixes more consistently in C++ code. 72452f2ae test: Add some more tests for onion and shared key cache. d5a51b09a cleanup: Use tox_attributes.h in tox_private.h and install it. b6f5b9fc5 test: Add some benchmarks for various high level things. 8a8d02785 test(support): Introduce threaded Tox runner and simulation barrier d68d1d095 perf(toxav): optimize audio and video intermediate buffers by keeping them around REVERT: c9cdae001 fix(toxav): remove extra copy of video frame on encode git-subtree-dir: external/toxcore/c-toxcore git-subtree-split: 9ed2fa80d582c714d6bdde6a7648220a92cddff8
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
#include <array>
|
||||
#include <vector>
|
||||
|
||||
#include "attributes.h"
|
||||
#include "crypto_core.h"
|
||||
#include "os_random.h"
|
||||
#include "tox_log_level.h"
|
||||
@@ -18,14 +19,14 @@ namespace {
|
||||
|
||||
using tox::test::SimulatedEnvironment;
|
||||
|
||||
static void set_random_name_and_status_message(
|
||||
Tox *tox, const Random *rng, uint8_t *name, uint8_t *status_message)
|
||||
static void set_random_name_and_status_message(Tox *_Nonnull tox, const Random *_Nonnull rng,
|
||||
std::uint8_t *_Nonnull name, std::uint8_t *_Nonnull status_message)
|
||||
{
|
||||
for (uint16_t i = 0; i < tox_max_name_length(); ++i) {
|
||||
for (std::uint16_t i = 0; i < tox_max_name_length(); ++i) {
|
||||
name[i] = random_u08(rng);
|
||||
}
|
||||
|
||||
for (uint16_t i = 0; i < tox_max_status_message_length(); ++i) {
|
||||
for (std::uint16_t i = 0; i < tox_max_status_message_length(); ++i) {
|
||||
status_message[i] = random_u08(rng);
|
||||
}
|
||||
}
|
||||
@@ -75,7 +76,7 @@ TEST(Tox, BootstrapErrorCodes)
|
||||
ASSERT_NE(tox, nullptr);
|
||||
|
||||
Tox_Err_Bootstrap err;
|
||||
std::array<uint8_t, TOX_PUBLIC_KEY_SIZE> pk;
|
||||
std::array<std::uint8_t, TOX_PUBLIC_KEY_SIZE> pk;
|
||||
tox_bootstrap(tox, "127.0.0.1", 0, pk.data(), &err);
|
||||
EXPECT_EQ(err, TOX_ERR_BOOTSTRAP_BAD_PORT);
|
||||
|
||||
@@ -92,8 +93,8 @@ TEST(Tox, OneTest)
|
||||
ASSERT_NE(options, nullptr);
|
||||
|
||||
tox_options_set_log_callback(options,
|
||||
[](Tox *tox, Tox_Log_Level level, const char *file, uint32_t line, const char *func,
|
||||
const char *message, void *user_data) {
|
||||
[](Tox *_Nonnull tox, Tox_Log_Level level, const char *_Nonnull file, std::uint32_t line,
|
||||
const char *_Nonnull func, const char *_Nonnull message, void *_Nullable user_data) {
|
||||
fprintf(stderr, "[%c] %s:%u(%s): %s\n", tox_log_level_to_string(level)[0], file, line,
|
||||
func, message);
|
||||
});
|
||||
@@ -102,11 +103,11 @@ TEST(Tox, OneTest)
|
||||
tox_options_set_start_port(options, 33545);
|
||||
tox_options_set_end_port(options, 33545 + 2000);
|
||||
|
||||
std::vector<uint8_t> name(tox_max_name_length());
|
||||
std::vector<uint8_t> status_message(tox_max_status_message_length());
|
||||
std::vector<std::uint8_t> name(tox_max_name_length());
|
||||
std::vector<std::uint8_t> status_message(tox_max_status_message_length());
|
||||
|
||||
std::vector<uint8_t> name2(tox_max_name_length());
|
||||
std::vector<uint8_t> status_message2(tox_max_status_message_length());
|
||||
std::vector<std::uint8_t> name2(tox_max_name_length());
|
||||
std::vector<std::uint8_t> status_message2(tox_max_status_message_length());
|
||||
|
||||
auto node1 = env.create_node(33545);
|
||||
Tox_Options_Testing testing_opts1 = {};
|
||||
@@ -126,16 +127,16 @@ TEST(Tox, OneTest)
|
||||
ASSERT_NE(tox2, nullptr);
|
||||
set_random_name_and_status_message(tox2, rng, name2.data(), status_message2.data());
|
||||
|
||||
std::array<uint8_t, TOX_ADDRESS_SIZE> address;
|
||||
std::array<std::uint8_t, TOX_ADDRESS_SIZE> address;
|
||||
tox_self_get_address(tox1, address.data());
|
||||
Tox_Err_Friend_Add error;
|
||||
uint32_t ret
|
||||
= tox_friend_add(tox1, address.data(), reinterpret_cast<const uint8_t *>("m"), 1, &error);
|
||||
std::uint32_t ret = tox_friend_add(
|
||||
tox1, address.data(), reinterpret_cast<const std::uint8_t *>("m"), 1, &error);
|
||||
EXPECT_EQ(error, TOX_ERR_FRIEND_ADD_OWN_KEY) << "Adding own address worked.";
|
||||
EXPECT_EQ(ret, UINT32_MAX);
|
||||
|
||||
tox_self_get_address(tox2, address.data());
|
||||
std::vector<uint8_t> message(tox_max_friend_request_length() + 1);
|
||||
std::vector<std::uint8_t> message(tox_max_friend_request_length() + 1);
|
||||
ret = tox_friend_add(tox1, address.data(), nullptr, 0, &error);
|
||||
EXPECT_EQ(error, TOX_ERR_FRIEND_ADD_NULL) << "Sending request with no message worked.";
|
||||
EXPECT_EQ(ret, UINT32_MAX);
|
||||
@@ -147,7 +148,8 @@ TEST(Tox, OneTest)
|
||||
EXPECT_EQ(ret, UINT32_MAX);
|
||||
|
||||
address[0]++;
|
||||
ret = tox_friend_add(tox1, address.data(), reinterpret_cast<const uint8_t *>("m"), 1, &error);
|
||||
ret = tox_friend_add(
|
||||
tox1, address.data(), reinterpret_cast<const std::uint8_t *>("m"), 1, &error);
|
||||
EXPECT_EQ(error, TOX_ERR_FRIEND_ADD_BAD_CHECKSUM) << "Adding address with bad checksum worked.";
|
||||
EXPECT_EQ(ret, UINT32_MAX);
|
||||
|
||||
@@ -170,7 +172,7 @@ TEST(Tox, OneTest)
|
||||
<< "Can't set status message of length " << tox_max_status_message_length();
|
||||
|
||||
tox_self_get_address(tox1, address.data());
|
||||
std::vector<uint8_t> data(tox_get_savedata_size(tox1));
|
||||
std::vector<std::uint8_t> data(tox_get_savedata_size(tox1));
|
||||
tox_get_savedata(tox1, data.data());
|
||||
|
||||
tox_kill(tox2);
|
||||
@@ -185,22 +187,22 @@ TEST(Tox, OneTest)
|
||||
EXPECT_EQ(tox_self_get_status_message_size(tox2), status_message.size())
|
||||
<< "Wrong status message size";
|
||||
|
||||
std::vector<uint8_t> name_loaded(tox_max_name_length());
|
||||
std::vector<std::uint8_t> name_loaded(tox_max_name_length());
|
||||
tox_self_get_name(tox2, name_loaded.data());
|
||||
EXPECT_EQ(name, name_loaded) << "Wrong name.";
|
||||
|
||||
std::vector<uint8_t> status_message_loaded(tox_max_status_message_length());
|
||||
std::vector<std::uint8_t> status_message_loaded(tox_max_status_message_length());
|
||||
tox_self_get_status_message(tox2, status_message_loaded.data());
|
||||
EXPECT_EQ(status_message, status_message_loaded) << "Wrong status message.";
|
||||
|
||||
std::array<uint8_t, TOX_ADDRESS_SIZE> address2;
|
||||
std::array<std::uint8_t, TOX_ADDRESS_SIZE> address2;
|
||||
tox_self_get_address(tox2, address2.data());
|
||||
EXPECT_EQ(address2, address) << "Wrong address.";
|
||||
std::vector<uint8_t> new_name(tox_max_name_length());
|
||||
std::vector<std::uint8_t> new_name(tox_max_name_length());
|
||||
tox_self_get_name(tox2, new_name.data());
|
||||
EXPECT_EQ(name, new_name) << "Wrong name";
|
||||
|
||||
std::array<uint8_t, TOX_SECRET_KEY_SIZE> sk;
|
||||
std::array<std::uint8_t, TOX_SECRET_KEY_SIZE> sk;
|
||||
tox_self_get_secret_key(tox2, sk.data());
|
||||
tox_kill(tox2);
|
||||
|
||||
@@ -210,12 +212,12 @@ TEST(Tox, OneTest)
|
||||
tox2 = tox_new_testing(options, &err_n, &testing_opts2, nullptr);
|
||||
ASSERT_EQ(err_n, TOX_ERR_NEW_OK) << "Load failed";
|
||||
tox_self_set_nospam(tox2, tox_self_get_nospam(tox1));
|
||||
std::array<uint8_t, TOX_ADDRESS_SIZE> address3;
|
||||
std::array<std::uint8_t, TOX_ADDRESS_SIZE> address3;
|
||||
tox_self_get_address(tox2, address3.data());
|
||||
EXPECT_EQ(address3, address) << "Wrong public key.";
|
||||
std::array<uint8_t, TOX_PUBLIC_KEY_SIZE> pk;
|
||||
std::array<std::uint8_t, TOX_PUBLIC_KEY_SIZE> pk;
|
||||
tox_self_get_public_key(tox2, pk.data());
|
||||
std::array<uint8_t, TOX_PUBLIC_KEY_SIZE> pk_from_addr;
|
||||
std::array<std::uint8_t, TOX_PUBLIC_KEY_SIZE> pk_from_addr;
|
||||
std::copy(address.begin(), address.begin() + TOX_PUBLIC_KEY_SIZE, pk_from_addr.begin());
|
||||
EXPECT_EQ(pk, pk_from_addr) << "Wrong public key.";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user