diff --git a/tests/meson.build b/tests/meson.build index ce8ddae..a05aaf0 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -39,6 +39,14 @@ executable( include_directories: inc, ) +executable( + 'nowide+whereami', + 'nowide+whereami.cpp', + include_sources['whereami'], + dependencies: deps, + include_directories: inc, +) + executable( 'scrollwheel', 'scrollwheel.cpp', diff --git a/tests/nowide+whereami.cpp b/tests/nowide+whereami.cpp new file mode 100644 index 0000000..2ad7b22 --- /dev/null +++ b/tests/nowide+whereami.cpp @@ -0,0 +1,41 @@ +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +template +void check_file(T& file) { + if (not file) { + nowide::cerr << "Can't open file" << std::endl; + return; + } + std::size_t total_lines = 0; + while (file) { + if(file.get() == '\n') { + total_lines++; + } + } + nowide::cout << "File has " << total_lines << " lines" << std::endl; +} + +int main() { + std::string executable_folder = whereami::executable_dir(); + nowide::cout << "whereami::executable_dir() = " << executable_folder << std::endl; + + auto u8string = std::u8string(executable_folder.begin(), executable_folder.end()); + nowide::cout << "std::u8string{_)} = " << reinterpret_cast(u8string.c_str()) << std::endl; + + std::filesystem::path u8path{u8string}; + nowide::cout << "std::filesystem::path{_} = " << u8path << std::endl; + + nowide::cout << "nowide::ifstream{_} : " << std::endl; + nowide::ifstream file_from_path(u8path / "test_file.txt"); + check_file(file_from_path); + return 0; +} \ No newline at end of file