mirror of
https://github.com/Chatterino/chatterino2.git
synced 2024-11-13 19:49:51 +01:00
81caf1aae0
* Use circular buffer for LimitedQueue * Reduce copying of snapshot * Small optimizations * Remove unneeded lock statements * Add LimitedQueue tests * Fix includes for limited queue benchmark * Update CHANGELOG.md * Use correct boost version iterators * Use a shared_mutex to clarify reads and writes * Update `find`/`rfind` to return the result as a boost::optional * Use `[[nodiscard]]` where applicable * Update comments * Add a couple more doc comments * Replace size with get get is a safe (locked & checked) version of at * Use std::vector in LimitedQueueSnapshot * Update LimitedQueue benchmarks * Add mutex guard to buffer accessors We do not know whether T is an atomic type or not so we can't safely say that we can copy the value at a certain address of the buffer. See https://stackoverflow.com/a/2252478 * Update doc comments, add first/last getters * Make limit_ const * Omit `else` if the if-case always returns * Title case category comments * Remove `at` * Fix `get` comment * Privatize/comment/lock property accessors - `limit` is now private - `space` is now private - `full` has been removed - `empty` now locks * Remove `front` function * Remove `back` method * Add comment to `first` * Add comment to `last` Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
54 lines
2.2 KiB
CMake
54 lines
2.2 KiB
CMake
project(chatterino-test)
|
|
|
|
set(test_SOURCES
|
|
${CMAKE_CURRENT_LIST_DIR}/src/main.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/src/ChannelChatters.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/src/AccessGuard.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/src/NetworkCommon.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/src/NetworkRequest.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/src/ChatterSet.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/src/HighlightPhrase.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/src/Emojis.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/src/ExponentialBackoff.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/src/Helpers.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/src/RatelimitBucket.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/src/Hotkeys.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/src/UtilTwitch.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/src/IrcHelpers.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/src/TwitchPubSubClient.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/src/TwitchMessageBuilder.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/src/HighlightController.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/src/FormatTime.cpp
|
|
${CMAKE_CURRENT_LIST_DIR}/src/LimitedQueue.cpp
|
|
# Add your new file above this line!
|
|
)
|
|
|
|
add_executable(${PROJECT_NAME} ${test_SOURCES})
|
|
add_sanitizers(${PROJECT_NAME})
|
|
|
|
target_link_libraries(${PROJECT_NAME} PRIVATE chatterino-lib)
|
|
|
|
target_link_libraries(${PROJECT_NAME} PRIVATE gtest gmock)
|
|
|
|
target_compile_definitions(${PROJECT_NAME} PRIVATE
|
|
CHATTERINO_TEST
|
|
)
|
|
|
|
set_target_properties(${PROJECT_NAME}
|
|
PROPERTIES
|
|
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
|
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
|
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
|
|
RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/bin"
|
|
RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/bin"
|
|
RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/bin"
|
|
)
|
|
|
|
# gtest_add_tests manages to discover the tests because it looks through the source files
|
|
# HOWEVER, it fails to run, because we have some bug that causes the QApplication exit to stall when no network requests have been made.
|
|
# ctest runs each test individually, so for now we require that testers just run the ./bin/chatterino-test binary without any filters applied
|
|
# gtest_add_tests(
|
|
# TARGET ${PROJECT_NAME}
|
|
# SOURCES ${test_SOURCES}
|
|
# )
|