@@ -105,7 +105,8 @@ class DatasetWriterTestFixture : public testing::Test {
105
105
uint64_t max_rows = kDefaultDatasetWriterMaxRowsQueued ) {
106
106
EXPECT_OK_AND_ASSIGN (auto dataset_writer,
107
107
DatasetWriter::Make (
108
- write_options_, scheduler_, [] {}, [] {}, [] {}, max_rows));
108
+ write_options_, scheduler_, [this ] { paused_ = true ; },
109
+ [this ] { paused_ = false ; }, [] {}, max_rows));
109
110
return dataset_writer;
110
111
}
111
112
@@ -231,6 +232,7 @@ class DatasetWriterTestFixture : public testing::Test {
231
232
util::AsyncTaskScheduler* scheduler_;
232
233
Future<> scheduler_finished_;
233
234
FileSystemDatasetWriteOptions write_options_;
235
+ bool paused_{false };
234
236
uint64_t counter_ = 0 ;
235
237
};
236
238
@@ -265,6 +267,14 @@ TEST_F(DatasetWriterTestFixture, DirectoryCreateFails) {
265
267
ASSERT_FINISHES_AND_RAISES (Invalid, scheduler_finished_);
266
268
}
267
269
270
+ TEST_F (DatasetWriterTestFixture, BatchGreaterThanMaxRowsQueued) {
271
+ auto dataset_writer = MakeDatasetWriter (10 );
272
+ dataset_writer->WriteRecordBatch (MakeBatch (35 ), " " );
273
+ EndWriterChecked (dataset_writer.get ());
274
+ AssertCreatedData ({{" testdir/chunk-0.arrow" , 0 , 35 }});
275
+ ASSERT_EQ (paused_, false );
276
+ }
277
+
268
278
TEST_F (DatasetWriterTestFixture, MaxRowsOneWrite) {
269
279
write_options_.max_rows_per_file = 10 ;
270
280
write_options_.max_rows_per_group = 10 ;
@@ -275,6 +285,7 @@ TEST_F(DatasetWriterTestFixture, MaxRowsOneWrite) {
275
285
{" testdir/chunk-1.arrow" , 10 , 10 },
276
286
{" testdir/chunk-2.arrow" , 20 , 10 },
277
287
{" testdir/chunk-3.arrow" , 30 , 5 }});
288
+ ASSERT_EQ (paused_, false );
278
289
}
279
290
280
291
TEST_F (DatasetWriterTestFixture, MaxRowsOneWriteBackpresure) {
0 commit comments