FileOpenFixture() { tmpPath = bfs::absolute(bfs::unique_path()); BOOST_TEST_CHECKPOINT("Creating special filenames"); #ifdef _WIN32 // Widestring UCS2 path fileNormal = bfs::path(L"1Normal.txt"); fileUmlaut = bfs::path(L"2Um\u00E4\u00F6\u00FCLaut.txt"); fileSpecial = bfs::path(L"3Spe\u0139\u00D4cial.txt"); #else // Use UTF8 (widestring not portable, either 16 or 32 bit) fileNormal = bfs::path("1Normal.txt"); fileUmlaut = bfs::path("2Um\xC3\xA4\xC3\xB6\xC3\xBC" "Laut.txt"); fileSpecial = bfs::path("3Spe\xC4\xB9\xC3\x94" "cial.txt"); #endif BOOST_TEST_CHECKPOINT("Creating tmp path" << tmpPath); bfs::create_directories(tmpPath); BOOST_TEST_CHECKPOINT("Creating files"); bnw::ofstream fNormal(tmpPath / fileNormal); bnw::ofstream fUmlaut(tmpPath / fileUmlaut); bnw::ofstream fSpecial(tmpPath / fileSpecial); BOOST_TEST_CHECKPOINT("Filling files"); fNormal << "OK"; fUmlaut << "OK"; fSpecial << "OK"; }
BOOST_FIXTURE_TEST_CASE(read_by_eight_bits, Fixture) { for (size_t i = 0; i < v.size(); ++i) { BOOST_TEST_CHECKPOINT("Shifted " << i << " times so far"); BOOST_CHECK_EQUAL(*bit, *it); unsigned char shifted = bit.shift(8); BOOST_REQUIRE_LT(shifted, 256); BOOST_CHECK_EQUAL(shifted, *it++); } }
BOOST_FIXTURE_TEST_CASE( next, next_fixture ) { it_u8 = enc_u8_beg; for (size_t i = 0; i < dec.size( ); ++i) { std::string::const_iterator last = it_u8; BOOST_TEST_CHECKPOINT( "i=" << i << " cp=U+" << std::hex << (uint32_t)dec[i] ); char32_t cp = lib::next( it_u8 ); BOOST_CHECK_EQUAL( cp, dec[i] ); BOOST_REQUIRE( it_u8 == last + enc_u8_cp_size[i] ); } }
BOOST_FIXTURE_TEST_CASE(read_by_two_bits, Fixture) { v_t shift_results = {0x0, 0x0, 0x3, 0x3, 0x3, 0x3, 0x0, 0x0, 0x3, 0x3, 0x3, 0x3}; v_t deref_results = {0xf0, 0xf3, 0xff, 0xcf, 0x0f, 0x0f, 0x0f, 0x3f, 0xff, 0xfc, 0xf0, 0xc0}; for (size_t i = 0; i < shift_results.size(); ++i) { BOOST_TEST_CHECKPOINT("Shifted " << i << " times so far"); BOOST_CHECK_EQUAL(*bit, deref_results[i]); unsigned char shifted = bit.shift(2); BOOST_REQUIRE_EQUAL(bit.shift(), ((i+1)*2)%8); BOOST_REQUIRE_LT(shifted, 4); BOOST_CHECK_EQUAL(shifted, shift_results[i]); } }
BOOST_FIXTURE_TEST_CASE( previous, previous_fixture ) { it_u8 = enc_u8_end; for (size_t i = dec.size( ); i > 0; --i) { std::string::const_iterator last = it_u8; BOOST_TEST_CHECKPOINT( "i=" << i << " cp=U+" << std::hex << (uint32_t)dec[i - 1] ); char32_t cp = lib::previous( it_u8 ); BOOST_REQUIRE_EQUAL( cp, dec[i - 1] ); BOOST_REQUIRE( it_u8 == last - enc_u8_cp_size[i - 1] ); } }
BOOST_FIXTURE_TEST_CASE(read_by_three_bits, Fixture) { v_t shift_results = {0x0, 0x6, 0x7, 0x7, 0x0, 0x6, 0x7, 0x7}; v_t deref_results = {0xf0, 0xf7, 0xcf, 0x0f, 0x0f, 0x7f}; // undefined, undefined}; for (size_t i = 0; i < shift_results.size(); ++i) { BOOST_TEST_CHECKPOINT("Shifted " << i << " times so far"); if (i < deref_results.size()) BOOST_CHECK_EQUAL(*bit, deref_results[i]); unsigned char shifted = bit.shift(3); BOOST_REQUIRE_LT(shifted, 8); BOOST_REQUIRE_EQUAL(bit.shift(), ((i+1)*3)%8); BOOST_CHECK_EQUAL(shifted, shift_results[i]); } }
BOOST_FIXTURE_TEST_CASE(read_by_seven_bits, Fixture) { v_t shift_results = {0x70, 0x1f, 0x7c}; v_t deref_results = {0xf0, 0x8f, 0x3f}; for (size_t i = 0; i < shift_results.size(); ++i) { BOOST_TEST_CHECKPOINT("Shifted " << i << " times so far"); if (i < deref_results.size()) BOOST_CHECK_EQUAL(*bit, deref_results[i]); unsigned char shifted = bit.shift(7); BOOST_REQUIRE_LT(shifted, 128); BOOST_REQUIRE_EQUAL(bit.shift(), ((i+1)*7)%8); BOOST_CHECK_EQUAL(shifted, shift_results[i]); } }
BOOST_FIXTURE_TEST_CASE(read_by_five_bits, Fixture) { v_t shift_results = {0x10, 0x1f, 0x03, 0x1e}; v_t deref_results = {0xf0, 0xef, 0x0f, 0x7f}; for (size_t i = 0; i < shift_results.size(); ++i) { BOOST_TEST_CHECKPOINT("Shifted " << i << " times so far"); if (i < deref_results.size()) BOOST_CHECK_EQUAL(*bit, deref_results[i]); unsigned char shifted = bit.shift(5); BOOST_REQUIRE_LT(shifted, 32); BOOST_REQUIRE_EQUAL(bit.shift(), ((i+1)*5)%8); BOOST_CHECK_EQUAL(shifted, shift_results[i]); } }
BOOST_FIXTURE_TEST_CASE( append, append_fixture ) { it_u8 = enc_u8_beg; for (char32_t cp : dec) { std::string res; std::string::const_iterator it2_u8 = it_u8; BOOST_TEST_CHECKPOINT( "cp=U+" << std::hex << (uint32_t)cp ); utf8::unchecked::advance( it_u8, 1 ); lib::append( cp, std::back_inserter( res ) ); BOOST_REQUIRE_EQUAL_COLLECTIONS( res.cbegin( ), res.cend( ), it2_u8, it_u8 ); it2_u8 = lib::append( cp, res.begin( ) ); BOOST_REQUIRE( it2_u8 == res.cend( ) ); } }
virtual void OnTestEnd(const ::testing::TestInfo& testInfo) { std::stringstream s; std::string name = testInfo.name() ? testInfo.name() : "<unknown>"; s << "***Ending test [" << GoogleTestCase << ":" << GoogleTestName << "]" << std::endl; BOOST_TEST_CHECKPOINT(s.str()); #if defined(UNICODE) std::string sstr = s.str(); std::wstring ws(sstr.size(), L' '); ws.resize(mbstowcs(&ws[0], sstr.c_str(), sstr.size())); output_debug_string(ws.c_str()); #else output_debug_string(s.str().c_str()); #endif is_google_test = false; GoogleTestCase = ""; GoogleTestName = ""; }
BOOST_FIXTURE_TEST_CASE_TEMPLATE(InsertReadDelete, T, CommonDatasets, Fixture<T>) { BOOST_TEST_CHECKPOINT(T::getName()); std::vector<Name> names; // Insert for (auto i = this->data.begin(); i != this->data.end(); ++i) { Name name = Name(); this->handle->insert(**i); name = (*i)->getFullName(); this->nameToDataMap.insert(std::make_pair(name, *i)); names.push_back(name); } BOOST_CHECK_EQUAL(this->handle->size(), static_cast<int64_t>(this->data.size())); std::mt19937 rng{std::random_device{}()}; std::shuffle(names.begin(), names.end(), rng); // Read (all items should exist) for (auto i = names.begin(); i != names.end(); ++i) { std::shared_ptr<Data> retrievedData = this->handle->read(*i); BOOST_REQUIRE(this->nameToDataMap.count(*i) > 0); BOOST_CHECK_EQUAL(*this->nameToDataMap[*i], *retrievedData); } BOOST_CHECK_EQUAL(this->handle->size(), static_cast<int64_t>(this->data.size())); // Delete for (auto i = names.begin(); i != names.end(); ++i) { BOOST_CHECK_EQUAL(this->handle->erase(*i), true); } BOOST_CHECK_EQUAL(this->handle->size(), 0); }
void test_Object_func(void) { BOOST_TEST_CHECKPOINT("BUFFER"); Tester<oglplus::Buffer>()(); BOOST_TEST_CHECKPOINT("FRAMEBUFFER"); Tester<oglplus::Framebuffer>()(); #if GL_VERSION_4_1 || GL_ARB_separate_shader_objects BOOST_TEST_CHECKPOINT("PROGRAM_PIPELINE"); Tester<oglplus::ProgramPipeline>()(); #endif BOOST_TEST_CHECKPOINT("PROGRAM"); Tester<oglplus::Program>()(); BOOST_TEST_CHECKPOINT("QUERY"); Tester<oglplus::Query>()(); BOOST_TEST_CHECKPOINT("RENDERBUFFER"); Tester<oglplus::Renderbuffer>()(); BOOST_TEST_CHECKPOINT("SAMPLER"); Tester<oglplus::Sampler>()(); BOOST_TEST_CHECKPOINT("VERTEX_SHADER"); Tester<oglplus::VertexShader>()(); #if GL_VERSION_3_2 BOOST_TEST_CHECKPOINT("GEOMETRY_SHADER"); Tester<oglplus::GeometryShader>()(); #endif #if GL_VERSION_4_0 BOOST_TEST_CHECKPOINT("TESS_CONTROL_SHADER"); Tester<oglplus::TessControlShader>()(); #endif #if GL_VERSION_4_0 BOOST_TEST_CHECKPOINT("TESS_EVALUATION_SHADER"); Tester<oglplus::TessEvaluationShader>()(); #endif BOOST_TEST_CHECKPOINT("FRAGMENT_SHADER"); Tester<oglplus::FragmentShader>()(); #if GL_VERSION_4_3 BOOST_TEST_CHECKPOINT("COMPUTE_SHADER"); Tester<oglplus::ComputeShader>()(); #endif BOOST_TEST_CHECKPOINT("TEXTURE"); Tester<oglplus::Texture>()(); #if GL_VERSION_4_0 || GL_ARB_transform_feedback2 BOOST_TEST_CHECKPOINT("TRANSFORM_FEEDBACK"); Tester<oglplus::TransformFeedback>()(); #endif BOOST_TEST_CHECKPOINT("VERTEX_ARRAY"); Tester<oglplus::VertexArray>()(); }