Mercurial > trustbridge
view ui/tests/common.cpp @ 285:f23e0ccd5d14
Fix call to windows process.
This now uses the correct parameters, emits the signals
correctly as errors and waits for the process to finish instead
of relying on NOASYNC which did not work for runas and also
made it impossible to get the return code
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Wed, 02 Apr 2014 13:45:57 +0000 |
parents | c05e126b0b9e |
children | 17e1c8f37d72 |
line wrap: on
line source
#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; }