How to INSERT into mySQL without buffering, or force immediate buffer commit?
Plan A:

Shrink innodb_buffer_pool_size so as to force flushing to disk sooner.


Be cautious -- too small (a few MB) a buffer_pool may lead to a hang or crash.
There is still some caching, so you still cannot get precisely what you want.


Plan B:


Insert 1000 rows.
Shutdown MySQL (only this once)
Do the math.
Extrapolate to see how many rows to insert.
Finish to the computed limit.


Caveat:  The math won't be quite right, so you might under/overshoot.

Plan C:

As with Plan B, but do a second shutdown and extrapolation after inserting half the number of rows computed from Plan B.  This should give you a much more accurate target.

Plan D:

From my experience, InnoDB tables are usually 2x to 3x larger than MyISAM tables with the same schema and same data.  Since MyISAM table size is rather easy to compute, will doing that, then multiplying by 2 to 3 be good enough?

If all columns are TEXT, that is a pretty messy schema.  The storage of data will be compromised.  SELECTs will have to work harder, especially for range tests on numeric values stored in TEXT columns.