Mercurial > trustbridge
diff ui/tests/common.cpp @ 243:4b67cc2d4dad
Merged
author | Sascha Wilde <wilde@intevation.de> |
---|---|
date | Fri, 28 Mar 2014 18:38:34 +0100 |
parents | c05e126b0b9e |
children | 17e1c8f37d72 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/tests/common.cpp Fri Mar 28 18:38:34 2014 +0100 @@ -0,0 +1,42 @@ +#include <QString> +#include <QTemporaryFile> +#include <QDebug> +#include "common.h" + +QString getRandomDataFile(size_t size, const QDir &inDir) +{ + QTemporaryFile *tmpfile; + if (inDir != QDir()) { + tmpfile = new QTemporaryFile(inDir.path() + "/downloadertest"); + } else { + tmpfile = new QTemporaryFile(); + } + tmpfile->setAutoRemove(false); + tmpfile->open(); + size_t bufsize = 1024 * 1024; + if (bufsize > size) { + bufsize = size; + } + char buf[bufsize]; + + for (size_t i = 0; i < bufsize; i++) { + buf[i] = (char) qrand() % 255; + } + + size_t bytesWritten=0; + int retval = 0; + do { + size_t toWrite = size - bytesWritten; + if (toWrite < bufsize) { + retval = tmpfile->write(buf, toWrite); + } else { + retval = tmpfile->write(buf, bufsize); + } + bytesWritten += retval; + } while (retval != -1 && bytesWritten < size); + + tmpfile->close(); + QString ret = tmpfile->fileName(); + delete tmpfile; + return ret; +}