ProteoWizard
Functions | Variables
Serializer_mz5_Test.cpp File Reference
#include "pwiz/utility/misc/unit.hpp"
#include "Serializer_mz5.hpp"
#include "Diff.hpp"
#include "References.hpp"
#include "examples.hpp"
#include "pwiz/utility/misc/Std.hpp"
#include "pwiz/utility/misc/Filesystem.hpp"
#include "boost/thread/thread.hpp"
#include "boost/thread/barrier.hpp"
#include <cstring>
#include <cstdlib>

Go to the source code of this file.

Functions

void testWriteRead (const MSData &msd, const MSDataFile::WriteConfig &config)
void testWriteRead ()
void testThreadSafetyWorker (boost::barrier *testBarrier)
void testThreadSafety (const int &testThreadCount)
int main (int argc, char *argv[])

Variables

ostream * os_ = 0

Function Documentation

void testWriteRead ( const MSData msd,
const MSDataFile::WriteConfig config 
)

Definition at line 43 of file Serializer_mz5_Test.cpp.

References diff(), boost::lexical_cast(), os_, pwiz::msdata::Serializer_mz5::read(), pwiz::identdata::References::resolve(), unit_assert, and pwiz::msdata::Serializer_mz5::write().

{
if (os_)
*os_ << "testWriteRead() " << config << endl;
string filename = "Serializer_mz5_Test_" + lexical_cast<string> (
boost::this_thread::get_id()) + ".mz5";
{
MSData msd2;
Serializer_mz5 mz5Serializer(config);
mz5Serializer.write(filename, msd, &ilr);
mz5Serializer.read(filename, msd2);
if (os_ && diff)
*os_ << diff << endl;
}
bfs::remove(filename);
}
void testWriteRead ( )

Definition at line 70 of file Serializer_mz5_Test.cpp.

References pwiz::msdata::MSDataFile::WriteConfig::binaryDataEncoderConfig, pwiz::msdata::BinaryDataEncoder::Config::compression, pwiz::identdata::examples::initializeTiny(), MS_intensity_array, MS_m_z_array, MS_time_array, pwiz::msdata::BinaryDataEncoder::Config::precision, pwiz::msdata::BinaryDataEncoder::Config::precisionOverrides, and testWriteRead().

{
MSData msd;
// test with 64 bit precision
= BinaryDataEncoder::Precision_64;
= BinaryDataEncoder::Precision_64;
= BinaryDataEncoder::Precision_64;
= BinaryDataEncoder::Precision_64;
// compression activated
= BinaryDataEncoder::Compression_Zlib;
testWriteRead(msd, writeConfig);
//test with 32 bit precision
= BinaryDataEncoder::Precision_32;
= BinaryDataEncoder::Precision_32;
= BinaryDataEncoder::Precision_32;
= BinaryDataEncoder::Precision_32;
testWriteRead(msd, writeConfig);
// TODO: test without compression
}
void testThreadSafetyWorker ( boost::barrier *  testBarrier)

Definition at line 104 of file Serializer_mz5_Test.cpp.

References e(), and testWriteRead().

{
testBarrier->wait(); // wait until all threads have started
try
{
} catch (exception& e)
{
cerr << "Exception in worker thread: " << e.what() << endl;
} catch (...)
{
cerr << "Unhandled exception in worker thread." << endl;
exit(1); // fear the unknown!
}
}
void testThreadSafety ( const int &  testThreadCount)

Definition at line 121 of file Serializer_mz5_Test.cpp.

References testThreadSafetyWorker().

{
boost::barrier testBarrier(testThreadCount);
boost::thread_group testThreadGroup;
for (int i = 0; i < testThreadCount; ++i)
testThreadGroup.add_thread(new boost::thread(&testThreadSafetyWorker,
&testBarrier));
testThreadGroup.join_all();
}
int main ( int  argc,
char *  argv[] 
)

Definition at line 131 of file Serializer_mz5_Test.cpp.

References e(), os_, TEST_EPILOG, TEST_FAILED, TEST_PROLOG, testThreadSafety(), and testWriteRead().

{
TEST_PROLOG(argc, argv)
try
{
if (argc > 1 && !strcmp(argv[1], "-v"))
os_ = &cout;
}
catch (exception& e)
{
TEST_FAILED(e.what())
}
catch (...)
{
TEST_FAILED("Caught unknown exception.")
}
}

Variable Documentation

ostream* os_ = 0

Definition at line 41 of file Serializer_mz5_Test.cpp.