TEST(HexEncoding, HexEncodeTo) { std::string result = "0x"; EXPECT_EQ("123456FF", Hex::EncodeTo(kTestData, TOFT_ARRAY_SIZE(kTestData), &result, true)); std::vector<char> vector_result; Hex::EncodeTo(kTestData, TOFT_ARRAY_SIZE(kTestData), &vector_result, true); EXPECT_TRUE(IsEqual(result, vector_result)); }
TEST(HexEncoding, Generic) { char result[2 * TOFT_ARRAY_SIZE(kTestData) + 1] = {}; char end_char = result[2 * TOFT_ARRAY_SIZE(kTestData)]; Hex::Encode(kTestData, kTestData + TOFT_ARRAY_SIZE(kTestData), result, true); EXPECT_EQ(end_char, result[2 * TOFT_ARRAY_SIZE(kTestData)]); result[2 * TOFT_ARRAY_SIZE(kTestData)] = '\0'; EXPECT_STREQ("123456FF", result); }
TEST(HexEncoding, HexEncodeAppend) { std::string result = "0x"; EXPECT_EQ("0x123456FF", Hex::EncodeAppend(kTestData, TOFT_ARRAY_SIZE(kTestData), &result, true)); std::vector<char> vector_result; vector_result.push_back('0'); vector_result.push_back('x'); Hex::EncodeAppend(kTestData, TOFT_ARRAY_SIZE(kTestData), &vector_result, true); EXPECT_TRUE(IsEqual(result, vector_result)); }
TEST(SequenceFileReaderTest, seek_to_tail_test) { toft::LocalFileSystem local; toft::File* file = local.Open("testdata/big_seq_file", "rw"); ASSERT_NE(static_cast<toft::File*>(NULL), file); toft::LocalSequenceFileReader reader(file); ASSERT_TRUE(reader.Init()); ASSERT_EQ(true, reader.Seek(80)); ASSERT_EQ(96, reader.Tell()); int tests[] = { -1, 0, 1, 2, 5, 10, 100, 1000, 2 * 1000, 3 * 1000, 5 * 1000, 10 * 1000, 100 * 1000, 200 * 1000, 300 * 1000, 0, 1, 2, 5 }; unsigned seed = getpid(); for (size_t i = 0; i < TOFT_ARRAY_SIZE(tests); ++i) { reader.Seek(rand_r(&seed) % (3 * 1024 * 1024)); EXPECT_TRUE(reader.SeekToTail(tests[i])); CheckReadNRecord(&reader, tests[i]); } }
TEST_F(CombineProcessorTest, TestAll) { try { // register entity PbPythonProcessorConfig pb_config; baidu::flume::PbEntity* entity = pb_config.add_functor(); std::string name = flume::Reflection<Functor>::TypeName<TestCombineFn>(); entity->set_name(name); entity->set_config(""); pb_config.add_side_input_type(PCOLLECTION_TYPE); std::string config; pb_config.SerializeToString(&config); flume::MockEmitter<boost::python::object> emitter; boost::python::object three(3); EXPECT_CALL(emitter, EmitValue(three)); ProcessorImpl<CombineProcessor, 0> impl; const char* kKeys[] = {"split1", "split2"}; std::vector<boost::python::object> objects; objects.push_back(boost::python::object(1)); objects.push_back(boost::python::object(2)); std::auto_ptr<flume::core::Iterator> iter = baidu::bigflow::python::iterator( objects.begin(), objects.end() ); std::vector<flume::core::Iterator*> vec_iter; vec_iter.push_back(iter.get()); impl.Setup(config); impl.BeginGroup(std::vector<toft::StringPiece>(kKeys, kKeys + TOFT_ARRAY_SIZE(kKeys)), vec_iter, &emitter); impl.EndGroup(); }catch(...) { PyErr_Print(); ASSERT_TRUE(false); } }
TEST(HexEncoding, Case) { EXPECT_EQ("123456ff", Hex::EncodeAsString(kTestData, TOFT_ARRAY_SIZE(kTestData), false)); EXPECT_EQ("123456FF", Hex::EncodeAsString(kTestData, TOFT_ARRAY_SIZE(kTestData), true)); }
TEST(HexEncoding, Buffer) { char result[2 * TOFT_ARRAY_SIZE(kTestData) + 1]; EXPECT_STREQ("123456FF", Hex::EncodeToBuffer(kTestData, TOFT_ARRAY_SIZE(kTestData), result, true)); }