tests cleanup, NBT UTF
The UTF8 implementaion is ripped from openjdk-source's java source code, adapted by me for c++v1
parent
33b0b7bbbb
commit
483713b265
|
@ -26,10 +26,13 @@ else()
|
||||||
set(NBT_FILES "")
|
set(NBT_FILES "")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#include parallel hashmaps if the user decided to download the submodule.
|
#include zlib if the user has it.
|
||||||
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/libraries/parallel-hashmap/CMakeLists.txt)
|
find_package(ZLIB QUIET)
|
||||||
set(USE_PHMAPS)
|
|
||||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/libraries/parallel-hashmap/)
|
if (${ZLIB_FOUND})
|
||||||
|
include_directories(${ZLIB_INCLUDE_DIRS})
|
||||||
|
else()
|
||||||
|
message("ZLIB was not found, this is fine however if you wish you use gzip with NBT it is required.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include_directories(include/)
|
include_directories(include/)
|
||||||
|
@ -39,12 +42,16 @@ message("Profiler Files ${PROFILING_FILES}")
|
||||||
message("Source: ${CMAKE_SOURCE_DIR}")
|
message("Source: ${CMAKE_SOURCE_DIR}")
|
||||||
message("Current Source: ${CMAKE_CURRENT_SOURCE_DIR}")
|
message("Current Source: ${CMAKE_CURRENT_SOURCE_DIR}")
|
||||||
|
|
||||||
add_library(BLT ${STD_FILES} ${PROFILING_FILES} ${NBT_FILES})
|
configure_file(include/blt/config.h.in config/blt/config.h @ONLY)
|
||||||
target_include_directories(BLT PUBLIC include/)
|
|
||||||
|
|
||||||
if(${USE_PHMAPS})
|
add_library(BLT ${STD_FILES} ${PROFILING_FILES} ${NBT_FILES})
|
||||||
target_link_libraries(BLT phmap)
|
|
||||||
|
target_include_directories(BLT PUBLIC include/)
|
||||||
|
target_include_directories(BLT PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/config/)
|
||||||
|
if(${ZLIB_FOUND})
|
||||||
|
target_link_libraries(BLT PUBLIC ZLIB::ZLIB)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
message("BLT ${CMAKE_PROJECT_VERSION} Successfully included!")
|
message("BLT ${CMAKE_PROJECT_VERSION} Successfully included!")
|
||||||
|
|
||||||
if(${BUILD_TESTS})
|
if(${BUILD_TESTS})
|
||||||
|
|
|
@ -266,6 +266,15 @@ PHMAP_BUILD_TESTS:BOOL=OFF
|
||||||
//Enable installation
|
//Enable installation
|
||||||
PHMAP_INSTALL:BOOL=OFF
|
PHMAP_INSTALL:BOOL=OFF
|
||||||
|
|
||||||
|
//Path to a file.
|
||||||
|
ZLIB_INCLUDE_DIR:PATH=/usr/include
|
||||||
|
|
||||||
|
//Path to a library.
|
||||||
|
ZLIB_LIBRARY_DEBUG:FILEPATH=ZLIB_LIBRARY_DEBUG-NOTFOUND
|
||||||
|
|
||||||
|
//Path to a library.
|
||||||
|
ZLIB_LIBRARY_RELEASE:FILEPATH=/usr/lib/x86_64-linux-gnu/libz.so
|
||||||
|
|
||||||
//Value Computed by CMake
|
//Value Computed by CMake
|
||||||
phmap_BINARY_DIR:STATIC=/home/brett/Documents/code/c++/BLT/cmake-build-release/libraries/parallel-hashmap
|
phmap_BINARY_DIR:STATIC=/home/brett/Documents/code/c++/BLT/cmake-build-release/libraries/parallel-hashmap
|
||||||
|
|
||||||
|
@ -419,6 +428,14 @@ CMAKE_STRIP-ADVANCED:INTERNAL=1
|
||||||
CMAKE_UNAME:INTERNAL=/usr/bin/uname
|
CMAKE_UNAME:INTERNAL=/usr/bin/uname
|
||||||
//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
|
//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
|
||||||
CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
|
CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
|
||||||
|
//Details about finding ZLIB
|
||||||
|
FIND_PACKAGE_MESSAGE_DETAILS_ZLIB:INTERNAL=[/usr/lib/x86_64-linux-gnu/libz.so][/usr/include][v1.2.13()]
|
||||||
|
//ADVANCED property for variable: ZLIB_INCLUDE_DIR
|
||||||
|
ZLIB_INCLUDE_DIR-ADVANCED:INTERNAL=1
|
||||||
|
//ADVANCED property for variable: ZLIB_LIBRARY_DEBUG
|
||||||
|
ZLIB_LIBRARY_DEBUG-ADVANCED:INTERNAL=1
|
||||||
|
//ADVANCED property for variable: ZLIB_LIBRARY_RELEASE
|
||||||
|
ZLIB_LIBRARY_RELEASE-ADVANCED:INTERNAL=1
|
||||||
//linker supports push/pop state
|
//linker supports push/pop state
|
||||||
_CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE
|
_CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE
|
||||||
|
|
||||||
|
|
|
@ -52,35 +52,42 @@ build cmake_object_order_depends_target_BLT: phony || CMakeFiles/BLT.dir
|
||||||
build CMakeFiles/BLT.dir/src/blt/std/format.cpp.o: CXX_COMPILER__BLT_Release /home/brett/Documents/code/c++/BLT/src/blt/std/format.cpp || cmake_object_order_depends_target_BLT
|
build CMakeFiles/BLT.dir/src/blt/std/format.cpp.o: CXX_COMPILER__BLT_Release /home/brett/Documents/code/c++/BLT/src/blt/std/format.cpp || cmake_object_order_depends_target_BLT
|
||||||
DEP_FILE = CMakeFiles/BLT.dir/src/blt/std/format.cpp.o.d
|
DEP_FILE = CMakeFiles/BLT.dir/src/blt/std/format.cpp.o.d
|
||||||
FLAGS = -O3 -DNDEBUG -fdiagnostics-color=always
|
FLAGS = -O3 -DNDEBUG -fdiagnostics-color=always
|
||||||
INCLUDES = -I/home/brett/Documents/code/c++/BLT/include
|
INCLUDES = -I/home/brett/Documents/code/c++/BLT/include -I/home/brett/Documents/code/c++/BLT/cmake-build-release/config
|
||||||
OBJECT_DIR = CMakeFiles/BLT.dir
|
OBJECT_DIR = CMakeFiles/BLT.dir
|
||||||
OBJECT_FILE_DIR = CMakeFiles/BLT.dir/src/blt/std
|
OBJECT_FILE_DIR = CMakeFiles/BLT.dir/src/blt/std
|
||||||
|
|
||||||
build CMakeFiles/BLT.dir/src/blt/std/logging.cpp.o: CXX_COMPILER__BLT_Release /home/brett/Documents/code/c++/BLT/src/blt/std/logging.cpp || cmake_object_order_depends_target_BLT
|
build CMakeFiles/BLT.dir/src/blt/std/logging.cpp.o: CXX_COMPILER__BLT_Release /home/brett/Documents/code/c++/BLT/src/blt/std/logging.cpp || cmake_object_order_depends_target_BLT
|
||||||
DEP_FILE = CMakeFiles/BLT.dir/src/blt/std/logging.cpp.o.d
|
DEP_FILE = CMakeFiles/BLT.dir/src/blt/std/logging.cpp.o.d
|
||||||
FLAGS = -O3 -DNDEBUG -fdiagnostics-color=always
|
FLAGS = -O3 -DNDEBUG -fdiagnostics-color=always
|
||||||
INCLUDES = -I/home/brett/Documents/code/c++/BLT/include
|
INCLUDES = -I/home/brett/Documents/code/c++/BLT/include -I/home/brett/Documents/code/c++/BLT/cmake-build-release/config
|
||||||
OBJECT_DIR = CMakeFiles/BLT.dir
|
OBJECT_DIR = CMakeFiles/BLT.dir
|
||||||
OBJECT_FILE_DIR = CMakeFiles/BLT.dir/src/blt/std
|
OBJECT_FILE_DIR = CMakeFiles/BLT.dir/src/blt/std
|
||||||
|
|
||||||
build CMakeFiles/BLT.dir/src/blt/std/system.cpp.o: CXX_COMPILER__BLT_Release /home/brett/Documents/code/c++/BLT/src/blt/std/system.cpp || cmake_object_order_depends_target_BLT
|
build CMakeFiles/BLT.dir/src/blt/std/system.cpp.o: CXX_COMPILER__BLT_Release /home/brett/Documents/code/c++/BLT/src/blt/std/system.cpp || cmake_object_order_depends_target_BLT
|
||||||
DEP_FILE = CMakeFiles/BLT.dir/src/blt/std/system.cpp.o.d
|
DEP_FILE = CMakeFiles/BLT.dir/src/blt/std/system.cpp.o.d
|
||||||
FLAGS = -O3 -DNDEBUG -fdiagnostics-color=always
|
FLAGS = -O3 -DNDEBUG -fdiagnostics-color=always
|
||||||
INCLUDES = -I/home/brett/Documents/code/c++/BLT/include
|
INCLUDES = -I/home/brett/Documents/code/c++/BLT/include -I/home/brett/Documents/code/c++/BLT/cmake-build-release/config
|
||||||
OBJECT_DIR = CMakeFiles/BLT.dir
|
OBJECT_DIR = CMakeFiles/BLT.dir
|
||||||
OBJECT_FILE_DIR = CMakeFiles/BLT.dir/src/blt/std
|
OBJECT_FILE_DIR = CMakeFiles/BLT.dir/src/blt/std
|
||||||
|
|
||||||
build CMakeFiles/BLT.dir/src/blt/profiling/profiler.cpp.o: CXX_COMPILER__BLT_Release /home/brett/Documents/code/c++/BLT/src/blt/profiling/profiler.cpp || cmake_object_order_depends_target_BLT
|
build CMakeFiles/BLT.dir/src/blt/profiling/profiler.cpp.o: CXX_COMPILER__BLT_Release /home/brett/Documents/code/c++/BLT/src/blt/profiling/profiler.cpp || cmake_object_order_depends_target_BLT
|
||||||
DEP_FILE = CMakeFiles/BLT.dir/src/blt/profiling/profiler.cpp.o.d
|
DEP_FILE = CMakeFiles/BLT.dir/src/blt/profiling/profiler.cpp.o.d
|
||||||
FLAGS = -O3 -DNDEBUG -fdiagnostics-color=always
|
FLAGS = -O3 -DNDEBUG -fdiagnostics-color=always
|
||||||
INCLUDES = -I/home/brett/Documents/code/c++/BLT/include
|
INCLUDES = -I/home/brett/Documents/code/c++/BLT/include -I/home/brett/Documents/code/c++/BLT/cmake-build-release/config
|
||||||
OBJECT_DIR = CMakeFiles/BLT.dir
|
OBJECT_DIR = CMakeFiles/BLT.dir
|
||||||
OBJECT_FILE_DIR = CMakeFiles/BLT.dir/src/blt/profiling
|
OBJECT_FILE_DIR = CMakeFiles/BLT.dir/src/blt/profiling
|
||||||
|
|
||||||
|
build CMakeFiles/BLT.dir/src/blt/nbt/nbt.cpp.o: CXX_COMPILER__BLT_Release /home/brett/Documents/code/c++/BLT/src/blt/nbt/nbt.cpp || cmake_object_order_depends_target_BLT
|
||||||
|
DEP_FILE = CMakeFiles/BLT.dir/src/blt/nbt/nbt.cpp.o.d
|
||||||
|
FLAGS = -O3 -DNDEBUG -fdiagnostics-color=always
|
||||||
|
INCLUDES = -I/home/brett/Documents/code/c++/BLT/include -I/home/brett/Documents/code/c++/BLT/cmake-build-release/config
|
||||||
|
OBJECT_DIR = CMakeFiles/BLT.dir
|
||||||
|
OBJECT_FILE_DIR = CMakeFiles/BLT.dir/src/blt/nbt
|
||||||
|
|
||||||
build CMakeFiles/BLT.dir/src/blt/nbt/nbt_block.cpp.o: CXX_COMPILER__BLT_Release /home/brett/Documents/code/c++/BLT/src/blt/nbt/nbt_block.cpp || cmake_object_order_depends_target_BLT
|
build CMakeFiles/BLT.dir/src/blt/nbt/nbt_block.cpp.o: CXX_COMPILER__BLT_Release /home/brett/Documents/code/c++/BLT/src/blt/nbt/nbt_block.cpp || cmake_object_order_depends_target_BLT
|
||||||
DEP_FILE = CMakeFiles/BLT.dir/src/blt/nbt/nbt_block.cpp.o.d
|
DEP_FILE = CMakeFiles/BLT.dir/src/blt/nbt/nbt_block.cpp.o.d
|
||||||
FLAGS = -O3 -DNDEBUG -fdiagnostics-color=always
|
FLAGS = -O3 -DNDEBUG -fdiagnostics-color=always
|
||||||
INCLUDES = -I/home/brett/Documents/code/c++/BLT/include
|
INCLUDES = -I/home/brett/Documents/code/c++/BLT/include -I/home/brett/Documents/code/c++/BLT/cmake-build-release/config
|
||||||
OBJECT_DIR = CMakeFiles/BLT.dir
|
OBJECT_DIR = CMakeFiles/BLT.dir
|
||||||
OBJECT_FILE_DIR = CMakeFiles/BLT.dir/src/blt/nbt
|
OBJECT_FILE_DIR = CMakeFiles/BLT.dir/src/blt/nbt
|
||||||
|
|
||||||
|
@ -92,7 +99,7 @@ build CMakeFiles/BLT.dir/src/blt/nbt/nbt_block.cpp.o: CXX_COMPILER__BLT_Release
|
||||||
#############################################
|
#############################################
|
||||||
# Link the static library libBLT.a
|
# Link the static library libBLT.a
|
||||||
|
|
||||||
build libBLT.a: CXX_STATIC_LIBRARY_LINKER__BLT_Release CMakeFiles/BLT.dir/src/blt/std/format.cpp.o CMakeFiles/BLT.dir/src/blt/std/logging.cpp.o CMakeFiles/BLT.dir/src/blt/std/system.cpp.o CMakeFiles/BLT.dir/src/blt/profiling/profiler.cpp.o CMakeFiles/BLT.dir/src/blt/nbt/nbt_block.cpp.o
|
build libBLT.a: CXX_STATIC_LIBRARY_LINKER__BLT_Release CMakeFiles/BLT.dir/src/blt/std/format.cpp.o CMakeFiles/BLT.dir/src/blt/std/logging.cpp.o CMakeFiles/BLT.dir/src/blt/std/system.cpp.o CMakeFiles/BLT.dir/src/blt/profiling/profiler.cpp.o CMakeFiles/BLT.dir/src/blt/nbt/nbt.cpp.o CMakeFiles/BLT.dir/src/blt/nbt/nbt_block.cpp.o
|
||||||
LANGUAGE_COMPILE_FLAGS = -O3 -DNDEBUG
|
LANGUAGE_COMPILE_FLAGS = -O3 -DNDEBUG
|
||||||
OBJECT_DIR = CMakeFiles/BLT.dir
|
OBJECT_DIR = CMakeFiles/BLT.dir
|
||||||
POST_BUILD = :
|
POST_BUILD = :
|
||||||
|
@ -112,7 +119,7 @@ build cmake_object_order_depends_target_BLT_TESTS: phony || cmake_object_order_d
|
||||||
build CMakeFiles/BLT_TESTS.dir/src/tests/main.cpp.o: CXX_COMPILER__BLT_TESTS_Release /home/brett/Documents/code/c++/BLT/src/tests/main.cpp || cmake_object_order_depends_target_BLT_TESTS
|
build CMakeFiles/BLT_TESTS.dir/src/tests/main.cpp.o: CXX_COMPILER__BLT_TESTS_Release /home/brett/Documents/code/c++/BLT/src/tests/main.cpp || cmake_object_order_depends_target_BLT_TESTS
|
||||||
DEP_FILE = CMakeFiles/BLT_TESTS.dir/src/tests/main.cpp.o.d
|
DEP_FILE = CMakeFiles/BLT_TESTS.dir/src/tests/main.cpp.o.d
|
||||||
FLAGS = -O3 -DNDEBUG -fdiagnostics-color=always -fsanitize=address
|
FLAGS = -O3 -DNDEBUG -fdiagnostics-color=always -fsanitize=address
|
||||||
INCLUDES = -I/home/brett/Documents/code/c++/BLT/include
|
INCLUDES = -I/home/brett/Documents/code/c++/BLT/include -I/home/brett/Documents/code/c++/BLT/cmake-build-release/config
|
||||||
OBJECT_DIR = CMakeFiles/BLT_TESTS.dir
|
OBJECT_DIR = CMakeFiles/BLT_TESTS.dir
|
||||||
OBJECT_FILE_DIR = CMakeFiles/BLT_TESTS.dir/src/tests
|
OBJECT_FILE_DIR = CMakeFiles/BLT_TESTS.dir/src/tests
|
||||||
|
|
||||||
|
@ -124,10 +131,10 @@ build CMakeFiles/BLT_TESTS.dir/src/tests/main.cpp.o: CXX_COMPILER__BLT_TESTS_Rel
|
||||||
#############################################
|
#############################################
|
||||||
# Link the executable BLT_TESTS
|
# Link the executable BLT_TESTS
|
||||||
|
|
||||||
build BLT_TESTS: CXX_EXECUTABLE_LINKER__BLT_TESTS_Release CMakeFiles/BLT_TESTS.dir/src/tests/main.cpp.o | libBLT.a || libBLT.a
|
build BLT_TESTS: CXX_EXECUTABLE_LINKER__BLT_TESTS_Release CMakeFiles/BLT_TESTS.dir/src/tests/main.cpp.o | libBLT.a /usr/lib/x86_64-linux-gnu/libz.so || libBLT.a
|
||||||
FLAGS = -O3 -DNDEBUG
|
FLAGS = -O3 -DNDEBUG
|
||||||
LINK_FLAGS = -fsanitize=address
|
LINK_FLAGS = -fsanitize=address
|
||||||
LINK_LIBRARIES = libBLT.a
|
LINK_LIBRARIES = libBLT.a /usr/lib/x86_64-linux-gnu/libz.so
|
||||||
OBJECT_DIR = CMakeFiles/BLT_TESTS.dir
|
OBJECT_DIR = CMakeFiles/BLT_TESTS.dir
|
||||||
POST_BUILD = :
|
POST_BUILD = :
|
||||||
PRE_LINK = :
|
PRE_LINK = :
|
||||||
|
@ -179,14 +186,14 @@ build all: phony libBLT.a BLT_TESTS
|
||||||
#############################################
|
#############################################
|
||||||
# Re-run CMake if any of its inputs changed.
|
# Re-run CMake if any of its inputs changed.
|
||||||
|
|
||||||
build build.ninja: RERUN_CMAKE | /home/brett/Documents/code/c++/BLT/CMakeLists.txt /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCInformation.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCXXInformation.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCommonLanguageInclude.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeGenericSystem.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeInitializeConfigs.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeLanguageInformation.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeSystemSpecificInformation.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeSystemSpecificInitialize.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/CMakeCommonCompilerMacros.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU-C.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU-CXX.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux-GNU-C.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux-GNU-CXX.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux-GNU.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/UnixPaths.cmake CMakeCache.txt CMakeFiles/3.24.2/CMakeCCompiler.cmake CMakeFiles/3.24.2/CMakeCXXCompiler.cmake CMakeFiles/3.24.2/CMakeSystem.cmake
|
build build.ninja: RERUN_CMAKE | /home/brett/Documents/code/c++/BLT/CMakeLists.txt /home/brett/Documents/code/c++/BLT/include/blt/config.h.in /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCInformation.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCXXInformation.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCommonLanguageInclude.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeGenericSystem.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeInitializeConfigs.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeLanguageInformation.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeSystemSpecificInformation.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeSystemSpecificInitialize.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/CMakeCommonCompilerMacros.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU-C.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU-CXX.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/FindPackageMessage.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/FindZLIB.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux-GNU-C.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux-GNU-CXX.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux-GNU.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/UnixPaths.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/SelectLibraryConfigurations.cmake CMakeCache.txt CMakeFiles/3.24.2/CMakeCCompiler.cmake CMakeFiles/3.24.2/CMakeCXXCompiler.cmake CMakeFiles/3.24.2/CMakeSystem.cmake
|
||||||
pool = console
|
pool = console
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
# A missing CMake input file is not an error.
|
# A missing CMake input file is not an error.
|
||||||
|
|
||||||
build /home/brett/Documents/code/c++/BLT/CMakeLists.txt /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCInformation.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCXXInformation.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCommonLanguageInclude.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeGenericSystem.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeInitializeConfigs.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeLanguageInformation.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeSystemSpecificInformation.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeSystemSpecificInitialize.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/CMakeCommonCompilerMacros.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU-C.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU-CXX.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux-GNU-C.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux-GNU-CXX.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux-GNU.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/UnixPaths.cmake CMakeCache.txt CMakeFiles/3.24.2/CMakeCCompiler.cmake CMakeFiles/3.24.2/CMakeCXXCompiler.cmake CMakeFiles/3.24.2/CMakeSystem.cmake: phony
|
build /home/brett/Documents/code/c++/BLT/CMakeLists.txt /home/brett/Documents/code/c++/BLT/include/blt/config.h.in /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCInformation.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCXXInformation.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeCommonLanguageInclude.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeGenericSystem.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeInitializeConfigs.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeLanguageInformation.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeSystemSpecificInformation.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/CMakeSystemSpecificInitialize.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/CMakeCommonCompilerMacros.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU-C.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU-CXX.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Compiler/GNU.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/FindPackageMessage.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/FindZLIB.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux-GNU-C.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux-GNU-CXX.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux-GNU.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/Linux.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/Platform/UnixPaths.cmake /opt/netbrains/clion/clion-2022.1.3/bin/cmake/linux/share/cmake-3.24/Modules/SelectLibraryConfigurations.cmake CMakeCache.txt CMakeFiles/3.24.2/CMakeCCompiler.cmake CMakeFiles/3.24.2/CMakeCXXCompiler.cmake CMakeFiles/3.24.2/CMakeSystem.cmake: phony
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
#cmakedefine ZLIB_FOUND
|
|
@ -7,6 +7,63 @@
|
||||||
#ifndef BLT_TESTS_NBT_H
|
#ifndef BLT_TESTS_NBT_H
|
||||||
#define BLT_TESTS_NBT_H
|
#define BLT_TESTS_NBT_H
|
||||||
|
|
||||||
#include <blt/nbt/nbt_block.h>
|
#include <fstream>
|
||||||
|
#include <ios>
|
||||||
|
|
||||||
|
#include "blt/std/format.h"
|
||||||
|
|
||||||
|
namespace blt::nbt {
|
||||||
|
void writeUTF8String(std::fstream& stream, const std::string& str);
|
||||||
|
|
||||||
|
std::string readUTF8String(std::fstream& stream);
|
||||||
|
|
||||||
|
class NBTByteReader {
|
||||||
|
public:
|
||||||
|
virtual void readBytes(char* buffer, size_t bytes) = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
class NBTByteFStreamReader : public NBTByteReader {
|
||||||
|
private:
|
||||||
|
std::fstream& m_stream;
|
||||||
|
size_t m_bufferSize;
|
||||||
|
char* m_buffer;
|
||||||
|
size_t readIndex = 0;
|
||||||
|
public:
|
||||||
|
explicit NBTByteFStreamReader(std::fstream& stream, size_t bufferSize):
|
||||||
|
m_stream(stream), m_bufferSize(bufferSize), m_buffer(new char[bufferSize]) {}
|
||||||
|
|
||||||
|
explicit NBTByteFStreamReader(NBTByteFStreamReader& copy) = delete;
|
||||||
|
|
||||||
|
explicit NBTByteFStreamReader(NBTByteFStreamReader&& move) = delete;
|
||||||
|
|
||||||
|
NBTByteFStreamReader& operator=(const NBTByteFStreamReader& copy) = delete;
|
||||||
|
|
||||||
|
void readBytes(char* buffer, size_t bytes) override;
|
||||||
|
|
||||||
|
~NBTByteFStreamReader() {
|
||||||
|
delete[] m_buffer;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class NBTDecoder {
|
||||||
|
private:
|
||||||
|
NBTByteReader* m_reader;
|
||||||
|
public:
|
||||||
|
explicit NBTDecoder(NBTByteReader* reader): m_reader(reader) {}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reads the entire NBT file when the read() function is called.
|
||||||
|
*/
|
||||||
|
class NBTReader {
|
||||||
|
private:
|
||||||
|
std::string m_file;
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit NBTReader(std::string file): m_file(std::move(file)) {}
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#endif //BLT_TESTS_NBT_H
|
#endif //BLT_TESTS_NBT_H
|
||||||
|
|
|
@ -61,4 +61,7 @@ namespace blt::profiling {
|
||||||
#define BLT_POINT(profileName, pointName) blt::profiling::point(profileName, pointName);
|
#define BLT_POINT(profileName, pointName) blt::profiling::point(profileName, pointName);
|
||||||
#define BLT_PRINT_PROFILE(profileName, ...) blt::profiling::printProfile(profileName, ##__VA_ARGS__);
|
#define BLT_PRINT_PROFILE(profileName, ...) blt::profiling::printProfile(profileName, ##__VA_ARGS__);
|
||||||
#define BLT_PRINT_ORDERED(profileName, ...) blt::profiling::printOrderedProfile(profileName, ##__VA_ARGS__);
|
#define BLT_PRINT_ORDERED(profileName, ...) blt::profiling::printOrderedProfile(profileName, ##__VA_ARGS__);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define BLT_INTERVAL_START(profileName, intervalName) BLT_START_INTERVAL(profileName, intervalName)
|
||||||
|
#define BLT_INTERVAL_END(profileName, intervalName) BLT_END_INTERVAL(profileName, intervalName)
|
|
@ -44,6 +44,123 @@ namespace blt::string {
|
||||||
return paddedString;
|
return paddedString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct utf8_string {
|
||||||
|
char* characters;
|
||||||
|
unsigned int size;
|
||||||
|
};
|
||||||
|
|
||||||
|
// taken from java, adapted for c++.
|
||||||
|
static inline utf8_string createUTFString(const std::string& str) {
|
||||||
|
|
||||||
|
const unsigned int strlen = str.size();
|
||||||
|
unsigned int utflen = strlen;
|
||||||
|
|
||||||
|
for (int i = 0; i < strlen; i++) {
|
||||||
|
unsigned char c = str[i];
|
||||||
|
if (c >= 0x80 || c == 0)
|
||||||
|
utflen += (c >= 0x800) ? 2 : 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (utflen > 65535 || /* overflow */ utflen < strlen)
|
||||||
|
throw "UTF Error";
|
||||||
|
|
||||||
|
utf8_string chars{};
|
||||||
|
chars.size = utflen + 2;
|
||||||
|
chars.characters = new char[chars.size];
|
||||||
|
|
||||||
|
int count = 0;
|
||||||
|
chars.characters[count++] = (char) ((utflen >> 0) & 0xFF);
|
||||||
|
chars.characters[count++] = (char) ((utflen >> 8) & 0xFF);
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
for (i = 0; i < strlen; i++) { // optimized for initial run of ASCII
|
||||||
|
int c = (unsigned char) str[i];
|
||||||
|
if (c >= 0x80 || c == 0) break;
|
||||||
|
chars.characters[count++] = (char) c;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (; i < strlen; i++) {
|
||||||
|
int c = (unsigned char) str[i];
|
||||||
|
if (c < 0x80 && c != 0) {
|
||||||
|
chars.characters[count++] = (char) c;
|
||||||
|
} else if (c >= 0x800) {
|
||||||
|
chars.characters[count++] = (char) (0xE0 | ((c >> 12) & 0x0F));
|
||||||
|
chars.characters[count++] = (char) (0x80 | ((c >> 6) & 0x3F));
|
||||||
|
chars.characters[count++] = (char) (0x80 | ((c >> 0) & 0x3F));
|
||||||
|
} else {
|
||||||
|
chars.characters[count++] = (char) (0xC0 | ((c >> 6) & 0x1F));
|
||||||
|
chars.characters[count++] = (char) (0x80 | ((c >> 0) & 0x3F));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return chars;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline std::string getStringFromUTF8(const utf8_string& str) {
|
||||||
|
auto utflen = str.size;
|
||||||
|
int c, char2, char3;
|
||||||
|
int count = 0;
|
||||||
|
int chararr_count = 0;
|
||||||
|
|
||||||
|
auto chararr = new char[utflen + 1];
|
||||||
|
|
||||||
|
while (count < utflen) {
|
||||||
|
c = (int) str.characters[count] & 0xff;
|
||||||
|
if (c > 127) break;
|
||||||
|
count++;
|
||||||
|
chararr[chararr_count++] = (char) c;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (count < utflen) {
|
||||||
|
c = (int) str.characters[count] & 0xff;
|
||||||
|
switch (c >> 4) {
|
||||||
|
case 0:
|
||||||
|
case 1:
|
||||||
|
case 2:
|
||||||
|
case 3:
|
||||||
|
case 4:
|
||||||
|
case 5:
|
||||||
|
case 6:
|
||||||
|
case 7:
|
||||||
|
/* 0xxxxxxx*/
|
||||||
|
count++;
|
||||||
|
chararr[chararr_count++] = (char) c;
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
case 13:
|
||||||
|
/* 110x xxxx 10xx xxxx*/
|
||||||
|
count += 2;
|
||||||
|
if (count > utflen)
|
||||||
|
throw "malformed input: partial character at end";
|
||||||
|
char2 = (int) str.characters[count - 1];
|
||||||
|
if ((char2 & 0xC0) != 0x80)
|
||||||
|
throw "malformed input around byte " + std::to_string(count);
|
||||||
|
chararr[chararr_count++] = (char) (((c & 0x1F) << 6) |
|
||||||
|
(char2 & 0x3F));
|
||||||
|
case 14:
|
||||||
|
/* 1110 xxxx 10xx xxxx 10xx xxxx */
|
||||||
|
count += 3;
|
||||||
|
if (count > utflen)
|
||||||
|
throw "malformed input: partial character at end";
|
||||||
|
char2 = (int) str.characters[count - 2];
|
||||||
|
char3 = (int) str.characters[count - 1];
|
||||||
|
if (((char2 & 0xC0) != 0x80) || ((char3 & 0xC0) != 0x80))
|
||||||
|
throw "malformed input around byte " + std::to_string(count - 1);
|
||||||
|
chararr[chararr_count++] = (char) (((c & 0x0F) << 12) |
|
||||||
|
((char2 & 0x3F) << 6) |
|
||||||
|
((char3 & 0x3F) << 0));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
/* 10xx xxxx, 1111 xxxx */
|
||||||
|
throw "malformed input around byte " + std::to_string(count);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
chararr[utflen] = '\0';
|
||||||
|
std::string strs {chararr};
|
||||||
|
delete[] chararr;
|
||||||
|
return strs;
|
||||||
|
}
|
||||||
|
|
||||||
struct TableColumn {
|
struct TableColumn {
|
||||||
std::string columnName;
|
std::string columnName;
|
||||||
size_t maxColumnLength = 0;
|
size_t maxColumnLength = 0;
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
* See LICENSE file for license detail
|
* See LICENSE file for license detail
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef BLT_TESTS_LOGGING_H
|
#ifndef BLT_LOGGING_H
|
||||||
#define BLT_TESTS_LOGGING_H
|
#define BLT_LOGGING_H
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ namespace blt::logging {
|
||||||
bool m_useColor = true;
|
bool m_useColor = true;
|
||||||
bool m_logToConsole = true;
|
bool m_logToConsole = true;
|
||||||
bool m_logToFile = true;
|
bool m_logToFile = true;
|
||||||
const char* m_directory = "./";
|
const char* m_directory = "./log/";
|
||||||
LOG_LEVEL minLevel = TRACE;
|
LOG_LEVEL minLevel = TRACE;
|
||||||
|
|
||||||
explicit constexpr LOG_PROPERTIES(bool useColor, bool logToConsole, bool logToFile, const char* directory):
|
explicit constexpr LOG_PROPERTIES(bool useColor, bool logToConsole, bool logToFile, const char* directory):
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
/*
|
||||||
|
* Created by Brett on 29/01/23.
|
||||||
|
* Licensed under GNU General Public License V3.0
|
||||||
|
* See LICENSE file for license detail
|
||||||
|
*/
|
||||||
|
#include <blt/nbt/nbt.h>
|
||||||
|
#include <cstring>
|
||||||
|
|
||||||
|
namespace blt::nbt {
|
||||||
|
void writeUTF8String(std::fstream& stream, const std::string& str) {
|
||||||
|
blt::string::utf8_string str8 = blt::string::createUTFString(str);
|
||||||
|
stream.write(str8.characters, str8.size);
|
||||||
|
delete[] str8.characters;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string readUTF8String(std::fstream& stream) {
|
||||||
|
unsigned short utflen;
|
||||||
|
|
||||||
|
stream.read(reinterpret_cast<char*>(&utflen), sizeof(utflen));
|
||||||
|
|
||||||
|
blt::string::utf8_string str{};
|
||||||
|
str.size = utflen;
|
||||||
|
str.characters = new char[str.size];
|
||||||
|
|
||||||
|
stream.read(str.characters, str.size);
|
||||||
|
|
||||||
|
auto strOut = std::move(blt::string::getStringFromUTF8(str));
|
||||||
|
delete[] str.characters;
|
||||||
|
return std::move(strOut);
|
||||||
|
}
|
||||||
|
|
||||||
|
void NBTByteFStreamReader::readBytes(char* buffer, size_t bytes) {
|
||||||
|
if (readIndex == 0)
|
||||||
|
m_stream.read(m_buffer, (long) m_bufferSize);
|
||||||
|
if (readIndex + bytes >= m_bufferSize) {
|
||||||
|
auto bytesLeft = m_bufferSize - readIndex;
|
||||||
|
memcpy(buffer, m_buffer + readIndex, bytesLeft);
|
||||||
|
readIndex = 0;
|
||||||
|
bytes -= bytesLeft;
|
||||||
|
readBytes(buffer + bytesLeft, bytes);
|
||||||
|
// m_stream.read(m_buffer, (long) m_bufferSize);
|
||||||
|
// memcpy(buffer + bytesLeft, m_buffer, bytes);
|
||||||
|
// readIndex += bytes;
|
||||||
|
} else {
|
||||||
|
std::memcpy(buffer, m_buffer + readIndex, bytes);
|
||||||
|
readIndex += bytes;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,14 +8,5 @@
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
namespace blt::nbt {
|
namespace blt::nbt {
|
||||||
/**
|
|
||||||
* Reads the entire NBT file when the read() function is called.
|
|
||||||
*/
|
|
||||||
class NBTReader {
|
|
||||||
private:
|
|
||||||
std::string m_file;
|
|
||||||
|
|
||||||
public:
|
|
||||||
explicit NBTReader(std::string file): m_file(std::move(file)) {}
|
|
||||||
};
|
|
||||||
}
|
}
|
|
@ -84,7 +84,7 @@ namespace blt::logging {
|
||||||
};
|
};
|
||||||
|
|
||||||
// by default everything is enabled
|
// by default everything is enabled
|
||||||
LOG_PROPERTIES BLT_LOGGING_PROPERTIES{true, true, true, "./"};
|
LOG_PROPERTIES BLT_LOGGING_PROPERTIES{true, true, true, "./log/"};
|
||||||
LogFileWriter writer{"./"};
|
LogFileWriter writer{"./"};
|
||||||
|
|
||||||
void init(LOG_PROPERTIES properties) {
|
void init(LOG_PROPERTIES properties) {
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
/*
|
||||||
|
* Created by Brett on 29/01/23.
|
||||||
|
* Licensed under GNU General Public License V3.0
|
||||||
|
* See LICENSE file for license detail
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef BLT_TESTS_LOGGING_TEST_H
|
||||||
|
#define BLT_TESTS_LOGGING_TEST_H
|
||||||
|
|
||||||
|
void run_logging() {
|
||||||
|
BLT_TRACE(10);
|
||||||
|
BLT_TRACE(10.5);
|
||||||
|
|
||||||
|
BLT_TRACE("Hello %d World!\n", 50);
|
||||||
|
BLT_DEBUG("Hello %E World!\n", 1205200.0);
|
||||||
|
BLT_INFO("Hello World!\n");
|
||||||
|
BLT_WARN("Hello World!\n");
|
||||||
|
BLT_ERROR("Hello World!\n");
|
||||||
|
BLT_FATAL("Hello World!\n");
|
||||||
|
|
||||||
|
blt::logging::tlog << "Hello! " << "Double stream insertion! " << 51 << 65 << " ";
|
||||||
|
blt::logging::tlog << "Same Line! ";
|
||||||
|
blt::logging::tlog << "Write the end!\n";
|
||||||
|
blt::logging::tlog << "Seeee\n Super\n";
|
||||||
|
|
||||||
|
std::string hello = "superSexyMax";
|
||||||
|
std::cout << "String starts with: " << blt::string::contains(hello, "superSexyMaxE") << "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //BLT_TESTS_LOGGING_H
|
|
@ -1,80 +1,18 @@
|
||||||
|
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
#include "binary_trees.h"
|
#include "binary_trees.h"
|
||||||
#include "blt/std/string.h"
|
#include "logging.h"
|
||||||
#include "blt/profiling/profiler.h"
|
#include "profiling_tests.h"
|
||||||
#include "blt/std/logging.h"
|
#include "nbt_tests.h"
|
||||||
#include "blt/std/time.h"
|
|
||||||
#include "blt/std/format.h"
|
|
||||||
#include <chrono>
|
|
||||||
#include <thread>
|
|
||||||
|
|
||||||
void print(const std::vector<std::string>& vtr) {
|
|
||||||
for (const auto& line : vtr)
|
|
||||||
BLT_TRACE(line);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
binaryTreeTest();
|
binaryTreeTest();
|
||||||
|
|
||||||
BLT_START_INTERVAL("Help", "SuperSet");
|
run_logging();
|
||||||
|
|
||||||
BLT_TRACE(10);
|
runProfilingAndTableTests();
|
||||||
BLT_TRACE(10.5);
|
|
||||||
|
|
||||||
BLT_TRACE("Hello %d World!\n", 50);
|
nbt_tests();
|
||||||
BLT_DEBUG("Hello %E World!\n", 1205200.0);
|
|
||||||
BLT_INFO("Hello World!\n");
|
|
||||||
BLT_WARN("Hello World!\n");
|
|
||||||
BLT_ERROR("Hello World!\n");
|
|
||||||
BLT_FATAL("Hello World!\n");
|
|
||||||
|
|
||||||
blt::logging::tlog << "Hello! " << "Double stream insertion! " << 51 << 65 << " ";
|
|
||||||
blt::logging::tlog << "Same Line! ";
|
|
||||||
blt::logging::tlog << "Write the end!\n";
|
|
||||||
blt::logging::tlog << "Seeee\n Super\n";
|
|
||||||
|
|
||||||
std::string hello = "superSexyMax";
|
|
||||||
std::cout << "String starts with: " << blt::string::contains(hello, "superSexyMaxE") << "\n";
|
|
||||||
|
|
||||||
BLT_END_INTERVAL("Help", "SuperSet");
|
|
||||||
|
|
||||||
BLT_START_INTERVAL("Help", "SecondSet");
|
|
||||||
for (int i = 0; i < 1000; i++){
|
|
||||||
;;
|
|
||||||
}
|
|
||||||
BLT_END_INTERVAL("Help", "SecondSet");
|
|
||||||
BLT_START_INTERVAL("Help", "UnderSet");
|
|
||||||
for (int i = 0; i < 1000; i++){
|
|
||||||
;;
|
|
||||||
}
|
|
||||||
BLT_END_INTERVAL("Help", "UnderSet");
|
|
||||||
|
|
||||||
for (int i = 0; i < 15; i++) {
|
|
||||||
BLT_START_INTERVAL("Help", "UnderSet" + std::to_string(i));
|
|
||||||
BLT_END_INTERVAL("Help", "UnderSet" + std::to_string(i));
|
|
||||||
}
|
|
||||||
|
|
||||||
BLT_PRINT_PROFILE("Help", blt::logging::LOG_LEVEL::TRACE);
|
|
||||||
BLT_PRINT_ORDERED("Help", blt::logging::LOG_LEVEL::TRACE);
|
|
||||||
|
|
||||||
blt::string::TableFormatter formatter;
|
|
||||||
formatter.addColumn(blt::string::TableColumn{"Test1"});
|
|
||||||
formatter.addColumn(blt::string::TableColumn{"Test2"});
|
|
||||||
formatter.addColumn(blt::string::TableColumn{"Test Column"});
|
|
||||||
formatter.addColumn(blt::string::TableColumn{"Test3"});
|
|
||||||
|
|
||||||
formatter.addRow({"This", "This LARGE", "222", "5000"});
|
|
||||||
formatter.addRow({"OTHER", "LARGE", "6", "1"});
|
|
||||||
formatter.addRow({"hheee", "looo", "m8", "loser"});
|
|
||||||
|
|
||||||
print(formatter.createTable(true, true));
|
|
||||||
BLT_TRACE("");
|
|
||||||
print(formatter.createTable(false, true));
|
|
||||||
BLT_TRACE("");
|
|
||||||
print(formatter.createTable(true, false));
|
|
||||||
BLT_TRACE("");
|
|
||||||
print(formatter.createTable(false, false));
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
/*
|
||||||
|
* Created by Brett on 29/01/23.
|
||||||
|
* Licensed under GNU General Public License V3.0
|
||||||
|
* See LICENSE file for license detail
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef BLT_TESTS_NBT_TESTS_H
|
||||||
|
#define BLT_TESTS_NBT_TESTS_H
|
||||||
|
|
||||||
|
#include <blt/nbt/nbt.h>
|
||||||
|
#include <blt/profiling/profiler.h>
|
||||||
|
#include <blt/std/logging.h>
|
||||||
|
#include <blt/std/format.h>
|
||||||
|
|
||||||
|
inline void nbt_tests(){
|
||||||
|
std::fstream testOutput("Hello.txt", std::ios::out | std::ios::binary);
|
||||||
|
|
||||||
|
char testByte[] = {3, 'A', 91};
|
||||||
|
short testShort = 6132;
|
||||||
|
int testInt = 6600099;
|
||||||
|
|
||||||
|
|
||||||
|
testOutput.write(testByte, 3);
|
||||||
|
testOutput.write(reinterpret_cast<char*>(&testShort), sizeof(short));
|
||||||
|
testOutput.write(reinterpret_cast<char*>(&testInt), sizeof(int));
|
||||||
|
blt::nbt::writeUTF8String(testOutput, "HelloHowManyCanWeFit!");
|
||||||
|
|
||||||
|
//testOutput.flush();
|
||||||
|
testOutput.close();
|
||||||
|
|
||||||
|
std::fstream testInput("Hello.txt", std::ios::in | std::ios::binary);
|
||||||
|
|
||||||
|
char testByteIn[3];
|
||||||
|
short testShortIn;
|
||||||
|
int testIntIn;
|
||||||
|
|
||||||
|
testInput.read(testByteIn, 3);
|
||||||
|
testInput.read(reinterpret_cast<char*>(&testShortIn), sizeof(short));
|
||||||
|
testInput.read(reinterpret_cast<char*>(&testIntIn), sizeof(int));
|
||||||
|
std::string strIn = blt::nbt::readUTF8String(testInput);
|
||||||
|
|
||||||
|
testInput.close();
|
||||||
|
BLT_INFO("%d, %c, %d, %d, %d, %s", testByteIn[0], testByteIn[1], testByteIn[2], testShortIn, testIntIn, strIn.c_str());
|
||||||
|
|
||||||
|
|
||||||
|
auto bufferSize = 1024 * 128;
|
||||||
|
char* buffer = new char[bufferSize];
|
||||||
|
char* read_buffer = new char[bufferSize];
|
||||||
|
char* read_block_buffer = new char[bufferSize];
|
||||||
|
|
||||||
|
for (int i = 0; i < bufferSize; i++)
|
||||||
|
buffer[i] = i+1;
|
||||||
|
|
||||||
|
BLT_START_INTERVAL("nbt", "Raw Write");
|
||||||
|
std::fstream largeOutput("HeyThere.txt", std::ios::in | std::ios::binary);
|
||||||
|
|
||||||
|
largeOutput.write(buffer, bufferSize);
|
||||||
|
BLT_END_INTERVAL("nbt", "Raw Write");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //BLT_TESTS_NBT_TESTS_H
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*
|
||||||
|
* Created by Brett on 29/01/23.
|
||||||
|
* Licensed under GNU General Public License V3.0
|
||||||
|
* See LICENSE file for license detail
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef BLT_TESTS_PROFILING_TESTS_H
|
||||||
|
#define BLT_TESTS_PROFILING_TESTS_H
|
||||||
|
|
||||||
|
#include "blt/profiling/profiler.h"
|
||||||
|
#include "blt/std/logging.h"
|
||||||
|
#include "blt/std/time.h"
|
||||||
|
#include "blt/std/format.h"
|
||||||
|
|
||||||
|
void print(const std::vector<std::string>& vtr) {
|
||||||
|
for (const auto& line : vtr)
|
||||||
|
BLT_TRACE(line);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void runProfilingAndTableTests() {
|
||||||
|
BLT_START_INTERVAL("Help", "SuperSet");
|
||||||
|
|
||||||
|
BLT_END_INTERVAL("Help", "SuperSet");
|
||||||
|
|
||||||
|
BLT_START_INTERVAL("Help", "SecondSet");
|
||||||
|
for (int i = 0; i < 1000; i++){
|
||||||
|
;;
|
||||||
|
}
|
||||||
|
BLT_END_INTERVAL("Help", "SecondSet");
|
||||||
|
BLT_START_INTERVAL("Help", "UnderSet");
|
||||||
|
for (int i = 0; i < 1000; i++){
|
||||||
|
;;
|
||||||
|
}
|
||||||
|
BLT_END_INTERVAL("Help", "UnderSet");
|
||||||
|
|
||||||
|
for (int i = 0; i < 15; i++) {
|
||||||
|
BLT_START_INTERVAL("Help", "UnderSet" + std::to_string(i));
|
||||||
|
BLT_END_INTERVAL("Help", "UnderSet" + std::to_string(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
BLT_PRINT_PROFILE("Help", blt::logging::LOG_LEVEL::TRACE);
|
||||||
|
BLT_TRACE("");
|
||||||
|
BLT_PRINT_ORDERED("Help", blt::logging::LOG_LEVEL::TRACE);
|
||||||
|
BLT_TRACE("");
|
||||||
|
|
||||||
|
blt::string::TableFormatter formatter;
|
||||||
|
formatter.addColumn(blt::string::TableColumn{"Test1"});
|
||||||
|
formatter.addColumn(blt::string::TableColumn{"Test2"});
|
||||||
|
formatter.addColumn(blt::string::TableColumn{"Test Column"});
|
||||||
|
formatter.addColumn(blt::string::TableColumn{"Test3"});
|
||||||
|
|
||||||
|
formatter.addRow({"This", "This LARGE", "222", "5000"});
|
||||||
|
formatter.addRow({"OTHER", "LARGE", "6", "1"});
|
||||||
|
formatter.addRow({"hheee", "looo", "m8", "opsiedo"});
|
||||||
|
|
||||||
|
print(formatter.createTable(true, true));
|
||||||
|
BLT_TRACE("");
|
||||||
|
print(formatter.createTable(false, true));
|
||||||
|
BLT_TRACE("");
|
||||||
|
print(formatter.createTable(true, false));
|
||||||
|
BLT_TRACE("");
|
||||||
|
print(formatter.createTable(false, false));
|
||||||
|
BLT_TRACE("");
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //BLT_TESTS_PROFILING_TESTS_H
|
Loading…
Reference in New Issue