From f291deba369f4ac6fc4aca4c873c10e80c769eb8 Mon Sep 17 00:00:00 2001 From: fluttershy Date: Sat, 18 Jan 2025 05:42:08 +0500 Subject: [PATCH] ctests and cmake update --- CMakeLists.txt | 32 +++++++++++++++++++++++++++++++- sources/main.cpp | 44 +++++++++++++++++++++++++++++++++++--------- tests/tests.cpp | 12 ++++++++++++ 3 files changed, 78 insertions(+), 10 deletions(-) create mode 100644 tests/tests.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b83775..31c1a5e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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") diff --git a/sources/main.cpp b/sources/main.cpp index 15bb1e3..5ef0e39 100644 --- a/sources/main.cpp +++ b/sources/main.cpp @@ -2,17 +2,43 @@ #include 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& 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& 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 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::endl; + ids.push_back(message["id"].get()); + } + lastID = message["id"].get(); + } + 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() == "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; -} \ No newline at end of file +} diff --git a/tests/tests.cpp b/tests/tests.cpp new file mode 100644 index 0000000..b863039 --- /dev/null +++ b/tests/tests.cpp @@ -0,0 +1,12 @@ +#include +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); +} \ No newline at end of file