MCPcopy Create free account
hub / github.com/apache/arrow / TestSlowInputStream

Function TestSlowInputStream

cpp/src/arrow/io/memory_test.cc:404–433  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

402
403template <typename SlowStreamType>
404void TestSlowInputStream() {
405 using clock = std::chrono::high_resolution_clock;
406
407 std::shared_ptr<RandomAccessFile> stream = BufferReader::FromString("abcdefghijkl");
408 const double latency = 0.6;
409 auto slow = std::make_shared<SlowStreamType>(stream, latency);
410
411 ASSERT_FALSE(slow->closed());
412 auto t1 = clock::now();
413 ASSERT_OK_AND_ASSIGN(auto buf, slow->Read(6));
414 auto t2 = clock::now();
415 AssertBufferEqual(*buf, "abcdef");
416 auto dt = std::chrono::duration_cast<std::chrono::duration<double>>(t2 - t1).count();
417#ifdef ARROW_WITH_TIMING_TESTS
418 ASSERT_LT(dt, latency * 3); // likely
419 ASSERT_GT(dt, latency / 3); // likely
420#else
421 ARROW_UNUSED(dt);
422#endif
423
424 ASSERT_OK_AND_ASSIGN(std::string_view view, slow->Peek(4));
425 ASSERT_EQ(view, std::string_view("ghij"));
426
427 ASSERT_OK(slow->Close());
428 ASSERT_TRUE(slow->closed());
429 ASSERT_TRUE(stream->closed());
430 ASSERT_OK(slow->Close());
431 ASSERT_TRUE(slow->closed());
432 ASSERT_TRUE(stream->closed());
433}
434
435TEST(TestSlowInputStream, Basics) { TestSlowInputStream<SlowInputStream>(); }
436

Callers

nothing calls this directly

Calls 5

FromStringFunction · 0.85
AssertBufferEqualFunction · 0.85
closedMethod · 0.45
countMethod · 0.45
CloseMethod · 0.45

Tested by

no test coverage detected