tests amd cmake update

This commit is contained in:
fluttershy 2025-01-18 05:42:08 +05:00
parent 9e3d5aa9e0
commit caf9cd17af
3 changed files with 78 additions and 10 deletions

View File

@ -2,23 +2,40 @@ cmake_minimum_required(VERSION 3.10)
project(sparkle)
include(GoogleTest)
set(SOURCE sources/main.cpp)
set(LIBS ${CMAKE_SOURCE_DIR}/libs/)
set(INCLUDE ${CMAKE_SOURCE_DIR}/include/)
set(TESTS ${CMAKE_SOURCE_DIR}/tests)
find_package(CURL REQUIRED)
find_path(IXWEBSOCKET_INCLUDE_DIR ixwebsocket)
find_library(IXWEBSOCKET_LIBRARIES ixwebsocket)
message(STATUS "IXWEBSOCKET_LIBRARIES: ${IXWEBSOCKET_LIBRARIES}")
message(STATUS "CURL_LIBRARIES: ${CURL_LIBRARIES}")
if(NOT IXWEBSOCKET_INCLUDE_DIR OR NOT IXWEBSOCKET_LIBRARIES)
message(FATAL_ERROR "ixwebsocket not found")
endif()
if(NOT CURL_INCLUDE_DIRS OR NOT CURL_LIBRARIES)
message(FATAL_ERROR "nghttp2 not found")
message(FATAL_ERROR "curl not found")
endif()
add_executable(${PROJECT_NAME} ${SOURCE})
#add_library(sparkles STATIC ${SOURCE})
add_executable(tests ${TESTS}/tests.cpp)
#enable_testing()
add_test(NAME network COMMAND tests)
#target_include_directories(sparkles PRIVATE ${LIBS} ${INCLUDE} ${IXWEBSOCKET_INCLUDE_DIR} ${CURL_INCLUDE_DIRS})
#target_link_libraries(sparkles PRIVATE ${IXWEBSOCKET_LIBRARIES} ${CURL_LIBRARIES})
target_include_directories(${PROJECT_NAME} PRIVATE
${LIBS}
@ -32,6 +49,19 @@ target_link_libraries(${PROJECT_NAME} PRIVATE
${CURL_LIBRARIES}
)
target_include_directories(tests PRIVATE
${LIBS}
${INCLUDE}
${IXWEBSOCKET_INCLUDE_DIR}
${CURL_INCLUDE_DIRS}
)
target_link_libraries(tests gtest
${IXWEBSOCKET_LIBRARIES}
${CURL_LIBRARIES}
gtest_main
)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_CXX_FLAGS "-march=native -O2 -pipe")

View File

@ -2,17 +2,43 @@
#include <includes.h>
int main(int argc, char* argv[]) {
if (argc != 3) return -1;
WebSocket* bot = &WebSocket::getInstance(argv[2], GatewayIntents::AllIntents);
WebSocket* bot = &WebSocket::getInstance(argv[2], GatewayIntents::AllIntents, false);
bot->on(GatewayEvents::READY, [](const Bot<Message, User, Author>& msg) {
if (!g(2, msg.net)->isBot()) {
cout << g(0, msg.net)->send("939957962972229634", j("content", "asd")) << endl;
}
});
bot->on(GatewayEvents::MESSAGE_CREATE, [](const Bot<Message, User, Author>& msg) {
if (!g(2, msg.net)->isBot()) {
cout << g(0, msg.net)->send("939957962972229634", j("content", g(2, msg.net)->content())) << endl;
std::string lastID = "1292591828888977589";
while (true) {
std::vector<std::string> ids;
std::cout << "Last ID: " << lastID << std::endl;
json js = json::parse(g(0, msg.net)->getMessages("956854968260890654", "100", lastID));
if (js.is_array() && !js.empty()) {
for (const auto& message : js) {
if (message["author"]["id"] == "956790566463614986") {
std::cout << "My message ID: " << message["id"].get<std::string>() << std::endl;
ids.push_back(message["id"].get<std::string>());
}
lastID = message["id"].get<std::string>();
}
if (ids.size() > 1) {
for (size_t x = 0; x < ids.size(); x++) {
try {
json jss = json::parse(g(0, msg.net)->deleteMessage("956854968260890654", ids[x]));
if (jss["code"].get<string>() == "20028") {
std::this_thread::sleep_for(10s);
}
std::cout << "Delete response: " << jss["message"] << ":" << jss["code"] << std::endl;
}
catch (...) {
std::cout << "DELETED" << std::endl;
}
std::this_thread::sleep_for(std::chrono::milliseconds(500));
}
}
}
else {
std::cout << "No messages found or error in response." << std::endl;
}
//std::this_thread::sleep_for(std::chrono::milliseconds(10));
}
});
bot->start();
return 0;
}
}

12
tests/tests.cpp Normal file
View File

@ -0,0 +1,12 @@
#include <gtest/gtest.h>
int add(int a, int b) {
return a + b;
}
TEST(AddTest, PositiveNumbers) {
EXPECT_EQ(add(1, 2), 3);
EXPECT_EQ(add(2, 3), 5);
}
TEST(AddTest, NegativeNumbers) {
EXPECT_EQ(add(-1, -1), -2);
EXPECT_EQ(add(-1, 1), 0);
}