hijack('onParsePartData', function () {
    callbacks.partData++;
});

hijack('onParsePartEnd', function () {
    callbacks.partEnd++;
});

form.on('finish', function () {
    callbacks.end++;
});

var start = new Date();
form.write(buffer, function (err) {
    var duration = new Date() - start;
    assert.ifError(err);
    var mbPerSec = (mb / (duration / 1000)).toFixed(2);
    console.log(mbPerSec + ' mb/sec');
});

//assert.equal(nparsed, buffer.length);

function createMultipartBuffer(boundary, size) {
    var head =
        '--' + boundary + '\r\n'
        + 'content-disposition: form-data; name="field1"\r\n'
        + '\r\n'
        , tail = '\r\n--' + boundary + '--\r\n'
        , buffer = new Buffer(size);

    buffer.write(head, 'ascii', 0);
    buffer.write(tail, 'ascii', buffer.length - tail.length);