1 // 2 // Copyright (c) 2015 Artyom Beilis (Tonkikh) 3 // 4 // Distributed under the Boost Software License, Version 1.0. (See 5 // accompanying file LICENSE or copy at 6 // http://www.boost.org/LICENSE_1_0.txt) 7 // 8 9 #include <boost/nowide/filesystem.hpp> 10 11 #include <boost/nowide/convert.hpp> 12 #include <boost/nowide/cstdio.hpp> 13 #include <boost/nowide/fstream.hpp> 14 #include <boost/filesystem/operations.hpp> 15 16 #include "test.hpp" 17 test_main(int,char **,char **)18void test_main(int, char**, char**) 19 { 20 boost::nowide::nowide_filesystem(); 21 const std::string prefix = boost::filesystem::unique_path("nowide-%%%%-%%%%-").string(); 22 const std::string utf8_name = 23 prefix + "\xf0\x9d\x92\x9e-\xD0\xBF\xD1\x80\xD0\xB8\xD0\xB2\xD0\xB5\xD1\x82-\xE3\x82\x84\xE3\x81\x82.txt"; 24 25 { 26 boost::nowide::ofstream f(utf8_name.c_str()); 27 TEST(f); 28 f << "Test" << std::endl; 29 } 30 31 TEST(boost::filesystem::is_regular_file(boost::nowide::widen(utf8_name))); 32 TEST(boost::filesystem::is_regular_file(utf8_name)); 33 34 TEST(boost::nowide::remove(utf8_name.c_str()) == 0); 35 36 TEST(!boost::filesystem::is_regular_file(boost::nowide::widen(utf8_name))); 37 TEST(!boost::filesystem::is_regular_file(utf8_name)); 38 39 const boost::filesystem::path path = utf8_name; 40 { 41 boost::nowide::ofstream f(path); 42 TEST(f); 43 f << "Test" << std::endl; 44 TEST(is_regular_file(path)); 45 } 46 { 47 boost::nowide::ifstream f(path); 48 TEST(f); 49 std::string test; 50 f >> test; 51 TEST(test == "Test"); 52 } 53 { 54 boost::nowide::fstream f(path); 55 TEST(f); 56 std::string test; 57 f >> test; 58 TEST(test == "Test"); 59 } 60 boost::filesystem::remove(path); 61 } 62