ROOT logo
/**************************************************************************
 * This file is property of and copyright by the ALICE HLT Project        *
 * ALICE Experiment at CERN, All rights reserved.                         *
 *                                                                        *
 * Primary Authors: Artur Szostak <artursz@iafrica.com>                   *
 *                  for The ALICE HLT Project.                            *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/**
 * @file   testCorruptorComponent.C
 * @author Artur Szostak <artursz@iafrica.com>
 * @date   5 Aug 2010
 *
 * This macro is used to test the basic functionality of the AliHLTCorruptorComponent
 * class.
 */

#if !defined(__CINT__) || defined(__MAKECINT__)
#include "Riostream.h"
#include "TSystem.h"
#include "TClassTable.h"
#include "TBits.h"
#include "AliLog.h"
#include "AliHLTSystem.h"
#include "AliHLTConfiguration.h"
#include <fstream>
#include <cstdlib>
#endif

/**
 * Creates the input data for the test.
 * It is just a file of 256 bytes with all zeros.
 */
void GenerateInputData(bool debug = false)
{
	using namespace std;
	const char* filename = "corruptorInputTestFile.dat";
	fstream file(filename, ios::trunc | ios::out | ios::binary);
	if (! file)
	{
		if (debug) cerr << "ERROR: Could not create file " << filename << endl;
		return;
	}
	char buffer[256];
	memset(buffer, 0x0, sizeof(buffer));
	file.write(buffer, sizeof(buffer));
	if (! file)
	{
		if (debug) cerr << "ERROR: I/O error when writing to file " << filename << endl;
		return;
	}
	file.close();
}

/**
 * Routine to check that the filtering of the data blocks works with the corruptor
 * component. Only filtered blocks should be modified.
 */
void RunChainToCheckFiltering(bool debug = false)
{
	AliHLTSystem sys;
	sys.LoadComponentLibraries("libAliHLTUtil.so");
	if (debug)
	{
		sys.SetGlobalLoggingLevel(kHLTLogAll);
	}
	else
	{
		sys.SetGlobalLoggingLevel(kHLTLogError);
	}
	
	const int numSources = 4;
	const char* fileTypeNames[numSources] = {
		"-datatype SOMEDATA HLT -dataspec 0x0",
		"-datatype MOREDATA HLT -dataspec 0x0",
		"-datatype SOMEDATA TPC -dataspec 0x0",
		"-datatype SOMEDATA HLT -dataspec 0xFF"
	};
	TString allSources = "";
	for (int i = 0; i < numSources; ++i)
	{
		TString sourceName = Form("source%d", i+1);
		if (allSources.Length() > 0) allSources += " ";
		allSources += sourceName;
		AliHLTConfiguration src(
			sourceName.Data(),
			"FilePublisher",
			"",
			Form("%s -datafile corruptorInputTestFile.dat", fileTypeNames[i])
		);
	}
	
	const int numProcessors = 4;
	const char* commandLine[numProcessors] = {
		"-datatype MOREDATA HLT -dataspec 0x0",
		"-datatype SOMEDATA TPC -dataspec 0x0",
		"-datatype SOMEDATA HLT -dataspec 0xFF",
		"-dataspec 0xFF -typeid '*******' -typeid MOREDATA -dataspec 0x0"
	};
	for (int i = 0; i < numProcessors; ++i)
	{
		TString processorName = Form("processor%d", i+1);
		AliHLTConfiguration prc(
			processorName.Data(),
			"CorruptorComponent",
			allSources.Data(),
			commandLine[i]
		);
		TString sinkName = Form("sink%d", i+1);
		AliHLTConfiguration snk(
			sinkName.Data(),
			"FileWriter",
			processorName.Data(),
			Form("-specfmt -datafile corruptorOutputTestFile_sink%d.dat", i+1)
		);
		sys.BuildTaskList(sinkName.Data());
	}
	
	sys.Run(1); // Run for 1 event.
}

/**
 * Reads a file into a buffer.
 * \param [in]  filename  The name of the file to read.
 * \param [out] buffer  The buffer which is created to store the contents.
 *                      Must be deleted with 'delete [] buffer' by caller if not NULL.
 * \param [out] size  The size of the buffer created in bytes.
 * \param [in]  debug  Indicates if debug messages should be printed.
 * \returns true if the file was read, the buffer created and filled; false otherwise.
 * \note The caller becomes the owner of the allocated buffer.
 */
bool ReadFile(const char* filename, char*& buffer, size_t& size, bool debug = false)
{
	buffer = NULL;
	size = 0;
	using namespace std;
	fstream file(filename, ios::in | ios::binary);
	if (! file)
	{
		if (debug) cerr << "ERROR: Could not open file " << filename << endl;
		return false;
	}
	file.seekg(0, std::ios::end);
	size_t filesize = file.tellg();
	file.seekg(0, std::ios::beg);
	if (! file)
	{
		if (debug) cerr << "ERROR: Could not get file size for " << filename << endl;
		return false;
	}
	buffer = new char[filesize];
	if (buffer == NULL)
	{
		if (debug) cerr << "ERROR: Cannot allocate more memory for buffers." << endl;
		return false;
	}
	size = filesize;
	file.read(buffer, size);
	if (! file)
	{
		if (debug) cerr << "ERROR: I/O error when reading from file " << filename << endl;
		return false;
	}
	return true;
}

/**
 * Checks if the output data is as expected for the filtering.
 * Only the output data blocks that were filtered should be modified.
 */
bool CheckFilteringOutput(bool debug = false)
{
	const int numBuffers = 5;
	int sinknum[numBuffers] = {1, 2, 3, 4, 4};
	const char* blocknum[numBuffers] = {
		"0x00",
		"0x00",
		"0x00",
		"0x00",
		"0x01"
	};
	const char* blocktype[numBuffers] = {
		"HLT:MOREDATA",
		"TPC:SOMEDATA",
		"HLT:SOMEDATA",
		"HLT:SOMEDATA",
		"HLT:MOREDATA"
	};
	const char* blockspec[numBuffers] = {
		"0x00000000",
		"0x00000000",
		"0x000000ff",
		"0x000000ff",
		"0x00000000"
	};
	char* buffer[numBuffers];
	size_t size[numBuffers];
	for (int i = 0; i < numBuffers; ++i)
	{
		const char* filename = Form("corruptorOutputTestFile_sink%d_0x00000000_%s_%s_%s.dat",
					    sinknum[i], blocknum[i], blocktype[i], blockspec[i]
					   );
		if (! ReadFile(filename, buffer[i], size[i], debug))
		{
			if (! debug)
			{
				cerr << "ERROR: Filtering chain test did not generate correct output files."
					<< " Run with 'debug = true' for more details." << endl;
			}
			return false;
		}
		delete [] buffer[i];
	}
	
	return true;
}

/**
 * Routine to check the single bit flip option.
 */
void RunChainToCheckSingleFlips(bool debug = false)
{
	AliHLTSystem sys;
	sys.LoadComponentLibraries("libAliHLTUtil.so");
	if (debug)
	{
		sys.SetGlobalLoggingLevel(kHLTLogAll);
	}
	else
	{
		sys.SetGlobalLoggingLevel(kHLTLogError);
	}
	
	AliHLTConfiguration src(
		"source",
		"FilePublisher",
		"",
		"-datatype SOMEDATA HLT -dataspec 0x0 -datafile corruptorInputTestFile.dat"
	);
	AliHLTConfiguration prc(
		"processor",
		"CorruptorComponent",
		"source",
		"-seed 123 -datatype SOMEDATA HLT -range 128 max -alignment 4 -errorcount 5 5 -singleflips"
	);
	AliHLTConfiguration snk(
		"sink",
		"FileWriter",
		"processor",
		"-datafile corruptorOutputTestFile_single.dat"
	);
	
	sys.BuildTaskList("sink");
	sys.Run(1); // Run for 1 event.
}

/**
 * Checks if the output data is as expected for the single bit flip option.
 */
bool CheckSingleFlipOutput(bool debug = false)
{
	char* buffer = NULL;
	size_t size = 0;
	if (! ReadFile("corruptorOutputTestFile_single_0x00000000_0x00_HLT:SOMEDATA.dat", buffer, size, debug))
	{
		if (! debug)
		{
			cerr << "ERROR: Single flips chain test did not generate correct"
				<< " output files. Run with 'debug = true' for more details."
				<< endl;
		}
		return false;
	}
	if (size != 256)
	{
		cerr << "ERROR: The output file is not the expected 256 bytes in size"
			<< " when testing the -singleflips option." << endl;
		delete [] buffer;
		return false;
	}
	// Check that the first 128 bytes are zero.
	for (int i = 0; i < 128; ++i)
	{
		if (buffer[i] != 0x0)
		{
			cerr << "ERROR: The first 128 bytes were not left as zeros when testing"
				<< " the -singleflips option." << endl;
			delete [] buffer;
			return false;
		}
	}
	// Check that the correct number of bit flips happened in the last 128 bytes.
	TBits bits(128*8);
	bits.Set(128*8, buffer+128);
	UInt_t bitcount = bits.CountBits();
	if (bitcount != 5)
	{
		cerr << "ERROR: When testing the -singleflips option,"
			<< " the number of bits flipped in the output buffer was "
			<< bitcount << ", but we expect exactly 5 bit flips."
			<< endl;
		delete [] buffer;
		return false;
	}
	// Check that the bit flips are only on 4 bit aligned addresses.
	for (UInt_t j = 128*8; j < 256*8; ++j)
	{
		if (bits[j] && (j & 0x7) != 0)
		{
			cerr << "ERROR: When testing the -singleflips option, bit " << j
				<< " was flipped in the output buffer,"
				<< " but it is not aligned to a 4 bit word boundary."
				<< endl;
			delete [] buffer;
			return false;
		}
	}
	
	delete [] buffer;
	return true;
}

/**
 * Routine to check the burst error option.
 */
void RunChainToCheckBurstErrors(bool debug = false)
{
	AliHLTSystem sys;
	sys.LoadComponentLibraries("libAliHLTUtil.so");
	if (debug)
	{
		sys.SetGlobalLoggingLevel(kHLTLogAll);
	}
	else
	{
		sys.SetGlobalLoggingLevel(kHLTLogError);
	}
	
	AliHLTConfiguration src(
		"source",
		"FilePublisher",
		"",
		"-datatype SOMEDATA HLT -dataspec 0x0 -datafile corruptorInputTestFile.dat"
	);
	AliHLTConfiguration prc(
		"processor",
		"CorruptorComponent",
		"source",
		"-seed 123 -datatype SOMEDATA HLT -range 0 256 -alignment 32 -errorcount 3 3 -bursterrors 16 8"
	);
	AliHLTConfiguration snk(
		"sink",
		"FileWriter",
		"processor",
		"-datafile corruptorOutputTestFile_burst.dat"
	);
	
	sys.BuildTaskList("sink");
	sys.Run(1); // Run for 1 event.
}

/**
 * Checks if the output data is as expected for the burst errors.
 */
bool CheckBurstErrorOutput(bool debug = false)
{
	char* buffer = NULL;
	size_t size = 0;
	if (! ReadFile("corruptorOutputTestFile_burst_0x00000000_0x00_HLT:SOMEDATA.dat", buffer, size, debug))
	{
		if (! debug)
		{
			cerr << "ERROR: Burst error chain test did not generate correct"
				<< " output files. Run with 'debug = true' for more details."
				<< endl;
		}
		return false;
	}
	if (size != 256)
	{
		cerr << "ERROR: The output file is not the expected 256 bytes in size"
			<< " when testing the -bursterrors option." << endl;
		delete [] buffer;
		return false;
	}
	TBits bits(256*8);
	bits.Set(256*8, buffer);
	// Check that the bit flips are only on the lower part of the 32 bit words.
	for (UInt_t j = 0; j < 256*8; ++j)
	{
		if (bits[j] && (j % 32) >= 16)
		{
			cerr << "ERROR: When testing the -bursterrors option, bit " << j
				<< " was flipped in the output buffer, but only the lower"
				<< " part of any 32 bit word is supposed to be corrupted."
				<< endl;
			delete [] buffer;
			return false;
		}
	}
	
	delete [] buffer;
	return true;
}

/**
 * Routine to check the replacement options.
 */
void RunChainToCheckReplaceErrors(bool debug = false)
{
	AliHLTSystem sys;
	sys.LoadComponentLibraries("libAliHLTUtil.so");
	if (debug)
	{
		sys.SetGlobalLoggingLevel(kHLTLogAll);
	}
	else
	{
		sys.SetGlobalLoggingLevel(kHLTLogError);
	}
	
	AliHLTConfiguration src1(
		"source1",
		"FilePublisher",
		"",
		"-datatype DATAAAAA HLT -dataspec 0x0 -datafile corruptorInputTestFile.dat"
	);
	AliHLTConfiguration prc1(
		"processor1",
		"CorruptorComponent",
		"source1",
		"-datatype DATAAAAA HLT -range 128:4 128:4 -replace 0x1/1 0xF 0xF/3 -seed 1"
	);
	AliHLTConfiguration src2(
		"source2",
		"FilePublisher",
		"",
		"-datatype DATABBBB HLT -dataspec 0x0 -datafile corruptorInputTestFile.dat"
	);
	AliHLTConfiguration prc2(
		"processor2",
		"CorruptorComponent",
		"source2",
		"-datatype DATABBBB HLT -seed 123 -range 8 8 -errorcount 1 1 -replace-random 64 64"
	);
	AliHLTConfiguration snk(
		"sink",
		"FileWriter",
		"processor1 processor2",
		"-datafile corruptorOutputTestFile_replace.dat"
	);
	
	sys.BuildTaskList("sink");
	sys.Run(1); // Run for 1 event.
}

/**
 * Checks if the output data is as expected for the replacement commands.
 */
bool CheckReplaceErrorsOutput(bool debug = false)
{
	char* buffer = NULL;
	size_t size = 0;
	if (! ReadFile("corruptorOutputTestFile_replace_0x00000000_0x01_HLT:DATAAAAA.dat", buffer, size, debug))
	{
		if (! debug)
		{
			cerr << "ERROR: Replace errors chain test did not generate correct"
				<< " output files. Run with 'debug = true' for more details."
				<< endl;
		}
		return false;
	}
	if (size != 256)
	{
		cerr << "ERROR: The output file is not the expected 256 bytes in size"
			<< " when testing the -replace option." << endl;
		delete [] buffer;
		return false;
	}
	// Check that the correct bits were set. All bits zero except 128:4 to 129:4
	for (UInt_t j = 0; j < 128; ++j)
	{
		if (buffer[j] != 0)
		{
			cerr << "ERROR: When testing the -replace option we found bits set in byte"
				<< j << " but the byte should be zero."
				<< endl;
			delete [] buffer;
			return false;
		}
	}
	if (AliHLTUInt8_t(buffer[128]) != 0xF0 || AliHLTUInt8_t(buffer[129]) != 0x0F)
	{
		cerr << "ERROR: When testing the -replace option we found a value of "
			<< Form("0x%2.2X", int(AliHLTUInt8_t(buffer[128]))) << " for byte 128 and "
			<< Form("0x%2.2X", int(AliHLTUInt8_t(buffer[129]))) << " for byte 129,"
			<< " but we expected values of 0xF0 and 0x0F respectively."
			<< endl;
		delete [] buffer;
		return false;
	}
	for (UInt_t j = 130; j < 256; ++j)
	{
		if (buffer[j] != 0)
		{
			cerr << "ERROR: When testing the -replace option we found bits set in byte"
				<< j << " but the byte should be zero."
				<< endl;
			delete [] buffer;
			return false;
		}
	}
	delete [] buffer;
	buffer = NULL;
	size = 0;
	// Now test the next buffer...
	if (! ReadFile("corruptorOutputTestFile_replace_0x00000000_0x00_HLT:DATABBBB.dat", buffer, size, debug))
	{
		if (! debug)
		{
			cerr << "ERROR: Replace errors chain test did not generate correct"
				<< " output files. Run with 'debug = true' for more details."
				<< endl;
		}
		return false;
	}
	if (size != 256)
	{
		cerr << "ERROR: The output file is not the expected 256 bytes in size"
			<< " when testing the -replace-random option." << endl;
		delete [] buffer;
		return false;
	}
	// Check that only bits in the second 64 bit word were set.
	for (UInt_t j = 0; j < 8; ++j)
	{
		if (buffer[j] != 0x0)
		{
			cerr << "ERROR: When testing the -replace-random option we found bits set in byte"
				<< j << " but the byte should be zero."
				<< endl;
			delete [] buffer;
			return false;
		}
	}
	if ((reinterpret_cast<AliHLTUInt64_t*>(buffer))[1] == 0x0)
	{
		cerr << "ERROR: When testing the -replace-random option we found no bits set in bytes 8 to 15." << endl;
		delete [] buffer;
		return false;
	}
	for (UInt_t j = 16; j < 256; ++j)
	{
		if (buffer[j] != 0x0)
		{
			cerr << "ERROR: When testing the -replace-random option we found bits set in byte"
				<< j << " but the byte should be zero."
				<< endl;
			delete [] buffer;
			return false;
		}
	}
	delete [] buffer;
	return true;
}

/**
 * Routine to check the insertion options.
 */
void RunChainToCheckInsertErrors(bool debug = false)
{
	AliHLTSystem sys;
	sys.LoadComponentLibraries("libAliHLTUtil.so");
	if (debug)
	{
		sys.SetGlobalLoggingLevel(kHLTLogAll);
	}
	else
	{
		sys.SetGlobalLoggingLevel(kHLTLogError);
	}
	
	AliHLTConfiguration src1(
		"source1",
		"FilePublisher",
		"",
		"-datatype DATAAAAA HLT -dataspec 0x0 -datafile corruptorInputTestFile.dat"
	);
	AliHLTConfiguration prc1(
		"processor1",
		"CorruptorComponent",
		"source1",
		"-datatype DATAAAAA HLT -range 128 128 -errorcount 1 1 -insert 0xCBA/12"
	);
	AliHLTConfiguration src2(
		"source2",
		"FilePublisher",
		"",
		"-datatype DATABBBB HLT -dataspec 0x0 -datafile corruptorInputTestFile.dat"
	);
	AliHLTConfiguration prc2(
		"processor2",
		"CorruptorComponent",
		"source2",
		"-datatype DATABBBB HLT -seed 123 -range max max -errorcount 1 1 -insert-random 64 64"
	);
	AliHLTConfiguration snk(
		"sink",
		"FileWriter",
		"processor1 processor2",
		"-datafile corruptorOutputTestFile_insert.dat"
	);
	
	sys.BuildTaskList("sink");
	sys.Run(1); // Run for 1 event.
}

/**
 * Checks if the output data is as expected for the insertion commands.
 */
bool CheckInsertErrorsOutput(bool debug = false)
{
	char* buffer = NULL;
	size_t size = 0;
	if (! ReadFile("corruptorOutputTestFile_insert_0x00000000_0x01_HLT:DATAAAAA.dat", buffer, size, debug))
	{
		if (! debug)
		{
			cerr << "ERROR: Insert errors chain test did not generate correct"
				<< " output files. Run with 'debug = true' for more details."
				<< endl;
		}
		return false;
	}
	if (size != 258)
	{
		cerr << "ERROR: The output file is not the expected 258 bytes in size"
			<< " when testing the -insert option." << endl;
		delete [] buffer;
		return false;
	}
	// Check that the correct bits were set. All bits zero except 128 to 129
	for (UInt_t j = 0; j < 128; ++j)
	{
		if (buffer[j] != 0)
		{
			cerr << "ERROR: When testing the -insert option we found bits set in byte"
				<< j << " but the byte should be zero."
				<< endl;
			delete [] buffer;
			return false;
		}
	}
	if (AliHLTUInt8_t(buffer[128]) != 0xBA || AliHLTUInt8_t(buffer[129]) != 0x0C)
	{
		cerr << "ERROR: When testing the -insert option we found a value of "
			<< Form("0x%2.2X", int(AliHLTUInt8_t(buffer[128]))) << " for byte 128 and "
			<< Form("0x%2.2X", int(AliHLTUInt8_t(buffer[129]))) << " for byte 129,"
			<< " but we expected values of 0xBA and 0x0C respectively."
			<< endl;
		delete [] buffer;
		return false;
	}
	for (UInt_t j = 130; j < 258; ++j)
	{
		if (buffer[j] != 0)
		{
			cerr << "ERROR: When testing the -insert option we found bits set in byte"
				<< j << " but the byte should be zero."
				<< endl;
			delete [] buffer;
			return false;
		}
	}
	delete [] buffer;
	buffer = NULL;
	size = 0;
	// Now test the next buffer...
	if (! ReadFile("corruptorOutputTestFile_insert_0x00000000_0x00_HLT:DATABBBB.dat", buffer, size, debug))
	{
		if (! debug)
		{
			cerr << "ERROR: Insert errors chain test did not generate correct"
				<< " output files. Run with 'debug = true' for more details."
				<< endl;
		}
		return false;
	}
	if (size != 264)
	{
		cerr << "ERROR: The output file is not the expected 264 bytes in size"
			<< " when testing the -insert-random option." << endl;
		delete [] buffer;
		return false;
	}
	// Check that only bits in the last 64 bit word were set.
	for (UInt_t j = 0; j < 256; ++j)
	{
		if (buffer[j] != 0x0)
		{
			cerr << "ERROR: When testing the -insert-random option we found bits set in byte"
				<< j << " but the byte should be zero."
				<< endl;
			delete [] buffer;
			return false;
		}
	}
	if ((reinterpret_cast<AliHLTUInt64_t*>(buffer))[32] == 0x0)
	{
		cerr << "ERROR: When testing the -insert-random option we found no bits set in bytes 256 to 263." << endl;
		delete [] buffer;
		return false;
	}
	delete [] buffer;
	return true;
}

/**
 * Routine to check the remove option.
 */
void RunChainToCheckRemoveErrors(bool debug = false)
{
	AliHLTSystem sys;
	sys.LoadComponentLibraries("libAliHLTUtil.so");
	if (debug)
	{
		sys.SetGlobalLoggingLevel(kHLTLogAll);
	}
	else
	{
		sys.SetGlobalLoggingLevel(kHLTLogError);
	}
	
	AliHLTConfiguration src(
		"source",
		"FilePublisher",
		"",
		"-datatype SOMEDATA HLT -dataspec 0x0 -datafile corruptorInputTestFile.dat"
	);
	AliHLTConfiguration prc(
		"processor",
		"CorruptorComponent",
		"source",
		"-datatype SOMEDATA HLT -range 128 128 -errorcount 1 1 -replace 0x78563412/32 -remove 16 16 -range max max -insert removed"
	);
	AliHLTConfiguration snk(
		"sink",
		"FileWriter",
		"processor",
		"-datafile corruptorOutputTestFile_remove.dat"
	);
	
	sys.BuildTaskList("sink");
	sys.Run(1); // Run for 1 event.
}

/**
 * Checks if the output data is as expected for the remove command.
 */
bool CheckRemoveErrorsOutput(bool debug = false)
{
	char* buffer = NULL;
	size_t size = 0;
	if (! ReadFile("corruptorOutputTestFile_remove_0x00000000_0x00_HLT:SOMEDATA.dat", buffer, size, debug))
	{
		if (! debug)
		{
			cerr << "ERROR: Remove errors chain test did not generate correct"
				<< " output file. Run with 'debug = true' for more details."
				<< endl;
		}
		return false;
	}
	if (size != 256)
	{
		cerr << "ERROR: The output file is not the expected 256 bytes in size"
			<< " when testing the -remove option." << endl;
		delete [] buffer;
		return false;
	}
	// Check that the correct bits were removed and set.
	for (UInt_t j = 0; j < 128; ++j)
	{
		if (buffer[j] != 0)
		{
			cerr << "ERROR: When testing the -remove option we found bits set in byte"
				<< j << " but the byte should be zero."
				<< endl;
			delete [] buffer;
			return false;
		}
	}
	if (AliHLTUInt8_t(buffer[128]) != 0x56 || AliHLTUInt8_t(buffer[129]) != 0x78)
	{
		cerr << "ERROR: When testing the -remove option we found a value of "
			<< Form("0x%2.2X", int(AliHLTUInt8_t(buffer[128]))) << " for byte 128 and "
			<< Form("0x%2.2X", int(AliHLTUInt8_t(buffer[129]))) << " for byte 129,"
			<< " but we expected values of 0x56 and 0x78 respectively."
			<< endl;
		delete [] buffer;
		return false;
	}
	for (UInt_t j = 130; j < 254; ++j)
	{
		if (buffer[j] != 0)
		{
			cerr << "ERROR: When testing the -remove option we found bits set in byte"
				<< j << " but the byte should be zero."
				<< endl;
			delete [] buffer;
			return false;
		}
	}
	if (AliHLTUInt8_t(buffer[254]) != 0x12 || AliHLTUInt8_t(buffer[255]) != 0x34)
	{
		cerr << "ERROR: When testing the -remove option we found a value of "
			<< Form("0x%2.2X", int(AliHLTUInt8_t(buffer[254]))) << " for byte 128 and "
			<< Form("0x%2.2X", int(AliHLTUInt8_t(buffer[255]))) << " for byte 129,"
			<< " but we expected values of 0x12 and 0x34 respectively."
			<< endl;
		delete [] buffer;
		return false;
	}
	delete [] buffer;
	return true;
}

/**
 * Routine to check the relative address option for "-range".
 */
void RunChainToCheckRelativeAddress(bool debug = false)
{
	AliHLTSystem sys;
	sys.LoadComponentLibraries("libAliHLTUtil.so");
	if (debug)
	{
		sys.SetGlobalLoggingLevel(kHLTLogAll);
	}
	else
	{
		sys.SetGlobalLoggingLevel(kHLTLogError);
	}
	
	AliHLTConfiguration src(
		"source",
		"FilePublisher",
		"",
		"-datatype SOMEDATA HLT -dataspec 0x0 -datafile corruptorInputTestFile.dat"
	);
	AliHLTConfiguration prc(
		"processor",
		"CorruptorComponent",
		"source",
		"-datatype SOMEDATA HLT -errorcount 1 1 -range max-4 max-4 -replace 0xFF/8 -range min+0:4 min+0:4 -replace 0xBA/8"
	);
	AliHLTConfiguration snk(
		"sink",
		"FileWriter",
		"processor",
		"-datafile corruptorOutputTestFile_reladdr.dat"
	);
	
	sys.BuildTaskList("sink");
	sys.Run(1); // Run for 1 event.
}

/**
 * Checks if the output data is as expected for the remove command.
 */
bool CheckRelativeAddressOutput(bool debug = false)
{
	char* buffer = NULL;
	size_t size = 0;
	if (! ReadFile("corruptorOutputTestFile_reladdr_0x00000000_0x00_HLT:SOMEDATA.dat", buffer, size, debug))
	{
		if (! debug)
		{
			cerr << "ERROR: Relative address chain test did not generate correct"
				<< " output file. Run with 'debug = true' for more details."
				<< endl;
		}
		return false;
	}
	if (size != 256)
	{
		cerr << "ERROR: The output file is not the expected 256 bytes in size"
			<< " when testing the relative address option." << endl;
		delete [] buffer;
		return false;
	}
	// Check that the correct bits were set.
	char refBuf[256];
	memset(refBuf, 0x0, sizeof(refBuf));
	refBuf[0] = 0xA0;
	refBuf[1] = 0x0B;
	refBuf[252] = 0xFF;
	for (UInt_t j = 0; j < 256; ++j)
	{
		if (buffer[j] != refBuf[j])
		{
			cerr << "ERROR: When testing the relative address option we find byte "
				<< j << " has a value of "
				<< Form("0x%2.2X", int(AliHLTUInt8_t(buffer[j])))
				<< ", but we expected a value of "
				<< Form("0x%2.2X", int(AliHLTUInt8_t(refBuf[j])))
				<< "." << endl;
			delete [] buffer;
			return false;
		}
	}
	delete [] buffer;
	return true;
}

/**
 * This is the top level testing method which calls individual tests.
 * \returns true if all tests succeeded and false otherwise.
 */
bool testAliHLTCorruptorComponent(bool debug = false)
{
	if (debug)
	{
		AliLog::SetGlobalLogLevel(AliLog::kMaxType);
	}
	else
	{
		// Done here to prevent output from AliHLTSystem.
		AliLog::SetGlobalLogLevel(AliLog::kError);
	}
	
	if (gClassTable->GetID("AliHLTCorruptorComponent") < 0)
	{
		gSystem->Load("libAliHLTUtil.so");
	}
	
	GenerateInputData(debug);
	RunChainToCheckFiltering(debug);
	if (! CheckFilteringOutput(debug)) return false;
	RunChainToCheckSingleFlips(debug);
	if (! CheckSingleFlipOutput(debug)) return false;
	RunChainToCheckBurstErrors(debug);
	if (! CheckBurstErrorOutput(debug)) return false;
	RunChainToCheckReplaceErrors(debug);
	if (! CheckReplaceErrorsOutput(debug)) return false;
	RunChainToCheckInsertErrors(debug);
	if (! CheckInsertErrorsOutput(debug)) return false;
	RunChainToCheckRemoveErrors(debug);
	if (! CheckRemoveErrorsOutput(debug)) return false;
	RunChainToCheckRelativeAddress(debug);
	if (! CheckRelativeAddressOutput(debug)) return false;
	
	// Cleanup all temporary files generated.
	gSystem->Exec("rm -f corruptorInputTestFile.dat corruptorOutputTestFile*.dat");
	return true;
}

#ifndef __MAKECINT__

int main(int /*argc*/, const char** /*argv*/)
{
	bool resultOk = testAliHLTCorruptorComponent();
	if (not resultOk) return 1;
	return 0;
}

#endif // __MAKECINT__

 testAliHLTCorruptorComponent.C:1
 testAliHLTCorruptorComponent.C:2
 testAliHLTCorruptorComponent.C:3
 testAliHLTCorruptorComponent.C:4
 testAliHLTCorruptorComponent.C:5
 testAliHLTCorruptorComponent.C:6
 testAliHLTCorruptorComponent.C:7
 testAliHLTCorruptorComponent.C:8
 testAliHLTCorruptorComponent.C:9
 testAliHLTCorruptorComponent.C:10
 testAliHLTCorruptorComponent.C:11
 testAliHLTCorruptorComponent.C:12
 testAliHLTCorruptorComponent.C:13
 testAliHLTCorruptorComponent.C:14
 testAliHLTCorruptorComponent.C:15
 testAliHLTCorruptorComponent.C:16
 testAliHLTCorruptorComponent.C:17
 testAliHLTCorruptorComponent.C:18
 testAliHLTCorruptorComponent.C:19
 testAliHLTCorruptorComponent.C:20
 testAliHLTCorruptorComponent.C:21
 testAliHLTCorruptorComponent.C:22
 testAliHLTCorruptorComponent.C:23
 testAliHLTCorruptorComponent.C:24
 testAliHLTCorruptorComponent.C:25
 testAliHLTCorruptorComponent.C:26
 testAliHLTCorruptorComponent.C:27
 testAliHLTCorruptorComponent.C:28
 testAliHLTCorruptorComponent.C:29
 testAliHLTCorruptorComponent.C:30
 testAliHLTCorruptorComponent.C:31
 testAliHLTCorruptorComponent.C:32
 testAliHLTCorruptorComponent.C:33
 testAliHLTCorruptorComponent.C:34
 testAliHLTCorruptorComponent.C:35
 testAliHLTCorruptorComponent.C:36
 testAliHLTCorruptorComponent.C:37
 testAliHLTCorruptorComponent.C:38
 testAliHLTCorruptorComponent.C:39
 testAliHLTCorruptorComponent.C:40
 testAliHLTCorruptorComponent.C:41
 testAliHLTCorruptorComponent.C:42
 testAliHLTCorruptorComponent.C:43
 testAliHLTCorruptorComponent.C:44
 testAliHLTCorruptorComponent.C:45
 testAliHLTCorruptorComponent.C:46
 testAliHLTCorruptorComponent.C:47
 testAliHLTCorruptorComponent.C:48
 testAliHLTCorruptorComponent.C:49
 testAliHLTCorruptorComponent.C:50
 testAliHLTCorruptorComponent.C:51
 testAliHLTCorruptorComponent.C:52
 testAliHLTCorruptorComponent.C:53
 testAliHLTCorruptorComponent.C:54
 testAliHLTCorruptorComponent.C:55
 testAliHLTCorruptorComponent.C:56
 testAliHLTCorruptorComponent.C:57
 testAliHLTCorruptorComponent.C:58
 testAliHLTCorruptorComponent.C:59
 testAliHLTCorruptorComponent.C:60
 testAliHLTCorruptorComponent.C:61
 testAliHLTCorruptorComponent.C:62
 testAliHLTCorruptorComponent.C:63
 testAliHLTCorruptorComponent.C:64
 testAliHLTCorruptorComponent.C:65
 testAliHLTCorruptorComponent.C:66
 testAliHLTCorruptorComponent.C:67
 testAliHLTCorruptorComponent.C:68
 testAliHLTCorruptorComponent.C:69
 testAliHLTCorruptorComponent.C:70
 testAliHLTCorruptorComponent.C:71
 testAliHLTCorruptorComponent.C:72
 testAliHLTCorruptorComponent.C:73
 testAliHLTCorruptorComponent.C:74
 testAliHLTCorruptorComponent.C:75
 testAliHLTCorruptorComponent.C:76
 testAliHLTCorruptorComponent.C:77
 testAliHLTCorruptorComponent.C:78
 testAliHLTCorruptorComponent.C:79
 testAliHLTCorruptorComponent.C:80
 testAliHLTCorruptorComponent.C:81
 testAliHLTCorruptorComponent.C:82
 testAliHLTCorruptorComponent.C:83
 testAliHLTCorruptorComponent.C:84
 testAliHLTCorruptorComponent.C:85
 testAliHLTCorruptorComponent.C:86
 testAliHLTCorruptorComponent.C:87
 testAliHLTCorruptorComponent.C:88
 testAliHLTCorruptorComponent.C:89
 testAliHLTCorruptorComponent.C:90
 testAliHLTCorruptorComponent.C:91
 testAliHLTCorruptorComponent.C:92
 testAliHLTCorruptorComponent.C:93
 testAliHLTCorruptorComponent.C:94
 testAliHLTCorruptorComponent.C:95
 testAliHLTCorruptorComponent.C:96
 testAliHLTCorruptorComponent.C:97
 testAliHLTCorruptorComponent.C:98
 testAliHLTCorruptorComponent.C:99
 testAliHLTCorruptorComponent.C:100
 testAliHLTCorruptorComponent.C:101
 testAliHLTCorruptorComponent.C:102
 testAliHLTCorruptorComponent.C:103
 testAliHLTCorruptorComponent.C:104
 testAliHLTCorruptorComponent.C:105
 testAliHLTCorruptorComponent.C:106
 testAliHLTCorruptorComponent.C:107
 testAliHLTCorruptorComponent.C:108
 testAliHLTCorruptorComponent.C:109
 testAliHLTCorruptorComponent.C:110
 testAliHLTCorruptorComponent.C:111
 testAliHLTCorruptorComponent.C:112
 testAliHLTCorruptorComponent.C:113
 testAliHLTCorruptorComponent.C:114
 testAliHLTCorruptorComponent.C:115
 testAliHLTCorruptorComponent.C:116
 testAliHLTCorruptorComponent.C:117
 testAliHLTCorruptorComponent.C:118
 testAliHLTCorruptorComponent.C:119
 testAliHLTCorruptorComponent.C:120
 testAliHLTCorruptorComponent.C:121
 testAliHLTCorruptorComponent.C:122
 testAliHLTCorruptorComponent.C:123
 testAliHLTCorruptorComponent.C:124
 testAliHLTCorruptorComponent.C:125
 testAliHLTCorruptorComponent.C:126
 testAliHLTCorruptorComponent.C:127
 testAliHLTCorruptorComponent.C:128
 testAliHLTCorruptorComponent.C:129
 testAliHLTCorruptorComponent.C:130
 testAliHLTCorruptorComponent.C:131
 testAliHLTCorruptorComponent.C:132
 testAliHLTCorruptorComponent.C:133
 testAliHLTCorruptorComponent.C:134
 testAliHLTCorruptorComponent.C:135
 testAliHLTCorruptorComponent.C:136
 testAliHLTCorruptorComponent.C:137
 testAliHLTCorruptorComponent.C:138
 testAliHLTCorruptorComponent.C:139
 testAliHLTCorruptorComponent.C:140
 testAliHLTCorruptorComponent.C:141
 testAliHLTCorruptorComponent.C:142
 testAliHLTCorruptorComponent.C:143
 testAliHLTCorruptorComponent.C:144
 testAliHLTCorruptorComponent.C:145
 testAliHLTCorruptorComponent.C:146
 testAliHLTCorruptorComponent.C:147
 testAliHLTCorruptorComponent.C:148
 testAliHLTCorruptorComponent.C:149
 testAliHLTCorruptorComponent.C:150
 testAliHLTCorruptorComponent.C:151
 testAliHLTCorruptorComponent.C:152
 testAliHLTCorruptorComponent.C:153
 testAliHLTCorruptorComponent.C:154
 testAliHLTCorruptorComponent.C:155
 testAliHLTCorruptorComponent.C:156
 testAliHLTCorruptorComponent.C:157
 testAliHLTCorruptorComponent.C:158
 testAliHLTCorruptorComponent.C:159
 testAliHLTCorruptorComponent.C:160
 testAliHLTCorruptorComponent.C:161
 testAliHLTCorruptorComponent.C:162
 testAliHLTCorruptorComponent.C:163
 testAliHLTCorruptorComponent.C:164
 testAliHLTCorruptorComponent.C:165
 testAliHLTCorruptorComponent.C:166
 testAliHLTCorruptorComponent.C:167
 testAliHLTCorruptorComponent.C:168
 testAliHLTCorruptorComponent.C:169
 testAliHLTCorruptorComponent.C:170
 testAliHLTCorruptorComponent.C:171
 testAliHLTCorruptorComponent.C:172
 testAliHLTCorruptorComponent.C:173
 testAliHLTCorruptorComponent.C:174
 testAliHLTCorruptorComponent.C:175
 testAliHLTCorruptorComponent.C:176
 testAliHLTCorruptorComponent.C:177
 testAliHLTCorruptorComponent.C:178
 testAliHLTCorruptorComponent.C:179
 testAliHLTCorruptorComponent.C:180
 testAliHLTCorruptorComponent.C:181
 testAliHLTCorruptorComponent.C:182
 testAliHLTCorruptorComponent.C:183
 testAliHLTCorruptorComponent.C:184
 testAliHLTCorruptorComponent.C:185
 testAliHLTCorruptorComponent.C:186
 testAliHLTCorruptorComponent.C:187
 testAliHLTCorruptorComponent.C:188
 testAliHLTCorruptorComponent.C:189
 testAliHLTCorruptorComponent.C:190
 testAliHLTCorruptorComponent.C:191
 testAliHLTCorruptorComponent.C:192
 testAliHLTCorruptorComponent.C:193
 testAliHLTCorruptorComponent.C:194
 testAliHLTCorruptorComponent.C:195
 testAliHLTCorruptorComponent.C:196
 testAliHLTCorruptorComponent.C:197
 testAliHLTCorruptorComponent.C:198
 testAliHLTCorruptorComponent.C:199
 testAliHLTCorruptorComponent.C:200
 testAliHLTCorruptorComponent.C:201
 testAliHLTCorruptorComponent.C:202
 testAliHLTCorruptorComponent.C:203
 testAliHLTCorruptorComponent.C:204
 testAliHLTCorruptorComponent.C:205
 testAliHLTCorruptorComponent.C:206
 testAliHLTCorruptorComponent.C:207
 testAliHLTCorruptorComponent.C:208
 testAliHLTCorruptorComponent.C:209
 testAliHLTCorruptorComponent.C:210
 testAliHLTCorruptorComponent.C:211
 testAliHLTCorruptorComponent.C:212
 testAliHLTCorruptorComponent.C:213
 testAliHLTCorruptorComponent.C:214
 testAliHLTCorruptorComponent.C:215
 testAliHLTCorruptorComponent.C:216
 testAliHLTCorruptorComponent.C:217
 testAliHLTCorruptorComponent.C:218
 testAliHLTCorruptorComponent.C:219
 testAliHLTCorruptorComponent.C:220
 testAliHLTCorruptorComponent.C:221
 testAliHLTCorruptorComponent.C:222
 testAliHLTCorruptorComponent.C:223
 testAliHLTCorruptorComponent.C:224
 testAliHLTCorruptorComponent.C:225
 testAliHLTCorruptorComponent.C:226
 testAliHLTCorruptorComponent.C:227
 testAliHLTCorruptorComponent.C:228
 testAliHLTCorruptorComponent.C:229
 testAliHLTCorruptorComponent.C:230
 testAliHLTCorruptorComponent.C:231
 testAliHLTCorruptorComponent.C:232
 testAliHLTCorruptorComponent.C:233
 testAliHLTCorruptorComponent.C:234
 testAliHLTCorruptorComponent.C:235
 testAliHLTCorruptorComponent.C:236
 testAliHLTCorruptorComponent.C:237
 testAliHLTCorruptorComponent.C:238
 testAliHLTCorruptorComponent.C:239
 testAliHLTCorruptorComponent.C:240
 testAliHLTCorruptorComponent.C:241
 testAliHLTCorruptorComponent.C:242
 testAliHLTCorruptorComponent.C:243
 testAliHLTCorruptorComponent.C:244
 testAliHLTCorruptorComponent.C:245
 testAliHLTCorruptorComponent.C:246
 testAliHLTCorruptorComponent.C:247
 testAliHLTCorruptorComponent.C:248
 testAliHLTCorruptorComponent.C:249
 testAliHLTCorruptorComponent.C:250
 testAliHLTCorruptorComponent.C:251
 testAliHLTCorruptorComponent.C:252
 testAliHLTCorruptorComponent.C:253
 testAliHLTCorruptorComponent.C:254
 testAliHLTCorruptorComponent.C:255
 testAliHLTCorruptorComponent.C:256
 testAliHLTCorruptorComponent.C:257
 testAliHLTCorruptorComponent.C:258
 testAliHLTCorruptorComponent.C:259
 testAliHLTCorruptorComponent.C:260
 testAliHLTCorruptorComponent.C:261
 testAliHLTCorruptorComponent.C:262
 testAliHLTCorruptorComponent.C:263
 testAliHLTCorruptorComponent.C:264
 testAliHLTCorruptorComponent.C:265
 testAliHLTCorruptorComponent.C:266
 testAliHLTCorruptorComponent.C:267
 testAliHLTCorruptorComponent.C:268
 testAliHLTCorruptorComponent.C:269
 testAliHLTCorruptorComponent.C:270
 testAliHLTCorruptorComponent.C:271
 testAliHLTCorruptorComponent.C:272
 testAliHLTCorruptorComponent.C:273
 testAliHLTCorruptorComponent.C:274
 testAliHLTCorruptorComponent.C:275
 testAliHLTCorruptorComponent.C:276
 testAliHLTCorruptorComponent.C:277
 testAliHLTCorruptorComponent.C:278
 testAliHLTCorruptorComponent.C:279
 testAliHLTCorruptorComponent.C:280
 testAliHLTCorruptorComponent.C:281
 testAliHLTCorruptorComponent.C:282
 testAliHLTCorruptorComponent.C:283
 testAliHLTCorruptorComponent.C:284
 testAliHLTCorruptorComponent.C:285
 testAliHLTCorruptorComponent.C:286
 testAliHLTCorruptorComponent.C:287
 testAliHLTCorruptorComponent.C:288
 testAliHLTCorruptorComponent.C:289
 testAliHLTCorruptorComponent.C:290
 testAliHLTCorruptorComponent.C:291
 testAliHLTCorruptorComponent.C:292
 testAliHLTCorruptorComponent.C:293
 testAliHLTCorruptorComponent.C:294
 testAliHLTCorruptorComponent.C:295
 testAliHLTCorruptorComponent.C:296
 testAliHLTCorruptorComponent.C:297
 testAliHLTCorruptorComponent.C:298
 testAliHLTCorruptorComponent.C:299
 testAliHLTCorruptorComponent.C:300
 testAliHLTCorruptorComponent.C:301
 testAliHLTCorruptorComponent.C:302
 testAliHLTCorruptorComponent.C:303
 testAliHLTCorruptorComponent.C:304
 testAliHLTCorruptorComponent.C:305
 testAliHLTCorruptorComponent.C:306
 testAliHLTCorruptorComponent.C:307
 testAliHLTCorruptorComponent.C:308
 testAliHLTCorruptorComponent.C:309
 testAliHLTCorruptorComponent.C:310
 testAliHLTCorruptorComponent.C:311
 testAliHLTCorruptorComponent.C:312
 testAliHLTCorruptorComponent.C:313
 testAliHLTCorruptorComponent.C:314
 testAliHLTCorruptorComponent.C:315
 testAliHLTCorruptorComponent.C:316
 testAliHLTCorruptorComponent.C:317
 testAliHLTCorruptorComponent.C:318
 testAliHLTCorruptorComponent.C:319
 testAliHLTCorruptorComponent.C:320
 testAliHLTCorruptorComponent.C:321
 testAliHLTCorruptorComponent.C:322
 testAliHLTCorruptorComponent.C:323
 testAliHLTCorruptorComponent.C:324
 testAliHLTCorruptorComponent.C:325
 testAliHLTCorruptorComponent.C:326
 testAliHLTCorruptorComponent.C:327
 testAliHLTCorruptorComponent.C:328
 testAliHLTCorruptorComponent.C:329
 testAliHLTCorruptorComponent.C:330
 testAliHLTCorruptorComponent.C:331
 testAliHLTCorruptorComponent.C:332
 testAliHLTCorruptorComponent.C:333
 testAliHLTCorruptorComponent.C:334
 testAliHLTCorruptorComponent.C:335
 testAliHLTCorruptorComponent.C:336
 testAliHLTCorruptorComponent.C:337
 testAliHLTCorruptorComponent.C:338
 testAliHLTCorruptorComponent.C:339
 testAliHLTCorruptorComponent.C:340
 testAliHLTCorruptorComponent.C:341
 testAliHLTCorruptorComponent.C:342
 testAliHLTCorruptorComponent.C:343
 testAliHLTCorruptorComponent.C:344
 testAliHLTCorruptorComponent.C:345
 testAliHLTCorruptorComponent.C:346
 testAliHLTCorruptorComponent.C:347
 testAliHLTCorruptorComponent.C:348
 testAliHLTCorruptorComponent.C:349
 testAliHLTCorruptorComponent.C:350
 testAliHLTCorruptorComponent.C:351
 testAliHLTCorruptorComponent.C:352
 testAliHLTCorruptorComponent.C:353
 testAliHLTCorruptorComponent.C:354
 testAliHLTCorruptorComponent.C:355
 testAliHLTCorruptorComponent.C:356
 testAliHLTCorruptorComponent.C:357
 testAliHLTCorruptorComponent.C:358
 testAliHLTCorruptorComponent.C:359
 testAliHLTCorruptorComponent.C:360
 testAliHLTCorruptorComponent.C:361
 testAliHLTCorruptorComponent.C:362
 testAliHLTCorruptorComponent.C:363
 testAliHLTCorruptorComponent.C:364
 testAliHLTCorruptorComponent.C:365
 testAliHLTCorruptorComponent.C:366
 testAliHLTCorruptorComponent.C:367
 testAliHLTCorruptorComponent.C:368
 testAliHLTCorruptorComponent.C:369
 testAliHLTCorruptorComponent.C:370
 testAliHLTCorruptorComponent.C:371
 testAliHLTCorruptorComponent.C:372
 testAliHLTCorruptorComponent.C:373
 testAliHLTCorruptorComponent.C:374
 testAliHLTCorruptorComponent.C:375
 testAliHLTCorruptorComponent.C:376
 testAliHLTCorruptorComponent.C:377
 testAliHLTCorruptorComponent.C:378
 testAliHLTCorruptorComponent.C:379
 testAliHLTCorruptorComponent.C:380
 testAliHLTCorruptorComponent.C:381
 testAliHLTCorruptorComponent.C:382
 testAliHLTCorruptorComponent.C:383
 testAliHLTCorruptorComponent.C:384
 testAliHLTCorruptorComponent.C:385
 testAliHLTCorruptorComponent.C:386
 testAliHLTCorruptorComponent.C:387
 testAliHLTCorruptorComponent.C:388
 testAliHLTCorruptorComponent.C:389
 testAliHLTCorruptorComponent.C:390
 testAliHLTCorruptorComponent.C:391
 testAliHLTCorruptorComponent.C:392
 testAliHLTCorruptorComponent.C:393
 testAliHLTCorruptorComponent.C:394
 testAliHLTCorruptorComponent.C:395
 testAliHLTCorruptorComponent.C:396
 testAliHLTCorruptorComponent.C:397
 testAliHLTCorruptorComponent.C:398
 testAliHLTCorruptorComponent.C:399
 testAliHLTCorruptorComponent.C:400
 testAliHLTCorruptorComponent.C:401
 testAliHLTCorruptorComponent.C:402
 testAliHLTCorruptorComponent.C:403
 testAliHLTCorruptorComponent.C:404
 testAliHLTCorruptorComponent.C:405
 testAliHLTCorruptorComponent.C:406
 testAliHLTCorruptorComponent.C:407
 testAliHLTCorruptorComponent.C:408
 testAliHLTCorruptorComponent.C:409
 testAliHLTCorruptorComponent.C:410
 testAliHLTCorruptorComponent.C:411
 testAliHLTCorruptorComponent.C:412
 testAliHLTCorruptorComponent.C:413
 testAliHLTCorruptorComponent.C:414
 testAliHLTCorruptorComponent.C:415
 testAliHLTCorruptorComponent.C:416
 testAliHLTCorruptorComponent.C:417
 testAliHLTCorruptorComponent.C:418
 testAliHLTCorruptorComponent.C:419
 testAliHLTCorruptorComponent.C:420
 testAliHLTCorruptorComponent.C:421
 testAliHLTCorruptorComponent.C:422
 testAliHLTCorruptorComponent.C:423
 testAliHLTCorruptorComponent.C:424
 testAliHLTCorruptorComponent.C:425
 testAliHLTCorruptorComponent.C:426
 testAliHLTCorruptorComponent.C:427
 testAliHLTCorruptorComponent.C:428
 testAliHLTCorruptorComponent.C:429
 testAliHLTCorruptorComponent.C:430
 testAliHLTCorruptorComponent.C:431
 testAliHLTCorruptorComponent.C:432
 testAliHLTCorruptorComponent.C:433
 testAliHLTCorruptorComponent.C:434
 testAliHLTCorruptorComponent.C:435
 testAliHLTCorruptorComponent.C:436
 testAliHLTCorruptorComponent.C:437
 testAliHLTCorruptorComponent.C:438
 testAliHLTCorruptorComponent.C:439
 testAliHLTCorruptorComponent.C:440
 testAliHLTCorruptorComponent.C:441
 testAliHLTCorruptorComponent.C:442
 testAliHLTCorruptorComponent.C:443
 testAliHLTCorruptorComponent.C:444
 testAliHLTCorruptorComponent.C:445
 testAliHLTCorruptorComponent.C:446
 testAliHLTCorruptorComponent.C:447
 testAliHLTCorruptorComponent.C:448
 testAliHLTCorruptorComponent.C:449
 testAliHLTCorruptorComponent.C:450
 testAliHLTCorruptorComponent.C:451
 testAliHLTCorruptorComponent.C:452
 testAliHLTCorruptorComponent.C:453
 testAliHLTCorruptorComponent.C:454
 testAliHLTCorruptorComponent.C:455
 testAliHLTCorruptorComponent.C:456
 testAliHLTCorruptorComponent.C:457
 testAliHLTCorruptorComponent.C:458
 testAliHLTCorruptorComponent.C:459
 testAliHLTCorruptorComponent.C:460
 testAliHLTCorruptorComponent.C:461
 testAliHLTCorruptorComponent.C:462
 testAliHLTCorruptorComponent.C:463
 testAliHLTCorruptorComponent.C:464
 testAliHLTCorruptorComponent.C:465
 testAliHLTCorruptorComponent.C:466
 testAliHLTCorruptorComponent.C:467
 testAliHLTCorruptorComponent.C:468
 testAliHLTCorruptorComponent.C:469
 testAliHLTCorruptorComponent.C:470
 testAliHLTCorruptorComponent.C:471
 testAliHLTCorruptorComponent.C:472
 testAliHLTCorruptorComponent.C:473
 testAliHLTCorruptorComponent.C:474
 testAliHLTCorruptorComponent.C:475
 testAliHLTCorruptorComponent.C:476
 testAliHLTCorruptorComponent.C:477
 testAliHLTCorruptorComponent.C:478
 testAliHLTCorruptorComponent.C:479
 testAliHLTCorruptorComponent.C:480
 testAliHLTCorruptorComponent.C:481
 testAliHLTCorruptorComponent.C:482
 testAliHLTCorruptorComponent.C:483
 testAliHLTCorruptorComponent.C:484
 testAliHLTCorruptorComponent.C:485
 testAliHLTCorruptorComponent.C:486
 testAliHLTCorruptorComponent.C:487
 testAliHLTCorruptorComponent.C:488
 testAliHLTCorruptorComponent.C:489
 testAliHLTCorruptorComponent.C:490
 testAliHLTCorruptorComponent.C:491
 testAliHLTCorruptorComponent.C:492
 testAliHLTCorruptorComponent.C:493
 testAliHLTCorruptorComponent.C:494
 testAliHLTCorruptorComponent.C:495
 testAliHLTCorruptorComponent.C:496
 testAliHLTCorruptorComponent.C:497
 testAliHLTCorruptorComponent.C:498
 testAliHLTCorruptorComponent.C:499
 testAliHLTCorruptorComponent.C:500
 testAliHLTCorruptorComponent.C:501
 testAliHLTCorruptorComponent.C:502
 testAliHLTCorruptorComponent.C:503
 testAliHLTCorruptorComponent.C:504
 testAliHLTCorruptorComponent.C:505
 testAliHLTCorruptorComponent.C:506
 testAliHLTCorruptorComponent.C:507
 testAliHLTCorruptorComponent.C:508
 testAliHLTCorruptorComponent.C:509
 testAliHLTCorruptorComponent.C:510
 testAliHLTCorruptorComponent.C:511
 testAliHLTCorruptorComponent.C:512
 testAliHLTCorruptorComponent.C:513
 testAliHLTCorruptorComponent.C:514
 testAliHLTCorruptorComponent.C:515
 testAliHLTCorruptorComponent.C:516
 testAliHLTCorruptorComponent.C:517
 testAliHLTCorruptorComponent.C:518
 testAliHLTCorruptorComponent.C:519
 testAliHLTCorruptorComponent.C:520
 testAliHLTCorruptorComponent.C:521
 testAliHLTCorruptorComponent.C:522
 testAliHLTCorruptorComponent.C:523
 testAliHLTCorruptorComponent.C:524
 testAliHLTCorruptorComponent.C:525
 testAliHLTCorruptorComponent.C:526
 testAliHLTCorruptorComponent.C:527
 testAliHLTCorruptorComponent.C:528
 testAliHLTCorruptorComponent.C:529
 testAliHLTCorruptorComponent.C:530
 testAliHLTCorruptorComponent.C:531
 testAliHLTCorruptorComponent.C:532
 testAliHLTCorruptorComponent.C:533
 testAliHLTCorruptorComponent.C:534
 testAliHLTCorruptorComponent.C:535
 testAliHLTCorruptorComponent.C:536
 testAliHLTCorruptorComponent.C:537
 testAliHLTCorruptorComponent.C:538
 testAliHLTCorruptorComponent.C:539
 testAliHLTCorruptorComponent.C:540
 testAliHLTCorruptorComponent.C:541
 testAliHLTCorruptorComponent.C:542
 testAliHLTCorruptorComponent.C:543
 testAliHLTCorruptorComponent.C:544
 testAliHLTCorruptorComponent.C:545
 testAliHLTCorruptorComponent.C:546
 testAliHLTCorruptorComponent.C:547
 testAliHLTCorruptorComponent.C:548
 testAliHLTCorruptorComponent.C:549
 testAliHLTCorruptorComponent.C:550
 testAliHLTCorruptorComponent.C:551
 testAliHLTCorruptorComponent.C:552
 testAliHLTCorruptorComponent.C:553
 testAliHLTCorruptorComponent.C:554
 testAliHLTCorruptorComponent.C:555
 testAliHLTCorruptorComponent.C:556
 testAliHLTCorruptorComponent.C:557
 testAliHLTCorruptorComponent.C:558
 testAliHLTCorruptorComponent.C:559
 testAliHLTCorruptorComponent.C:560
 testAliHLTCorruptorComponent.C:561
 testAliHLTCorruptorComponent.C:562
 testAliHLTCorruptorComponent.C:563
 testAliHLTCorruptorComponent.C:564
 testAliHLTCorruptorComponent.C:565
 testAliHLTCorruptorComponent.C:566
 testAliHLTCorruptorComponent.C:567
 testAliHLTCorruptorComponent.C:568
 testAliHLTCorruptorComponent.C:569
 testAliHLTCorruptorComponent.C:570
 testAliHLTCorruptorComponent.C:571
 testAliHLTCorruptorComponent.C:572
 testAliHLTCorruptorComponent.C:573
 testAliHLTCorruptorComponent.C:574
 testAliHLTCorruptorComponent.C:575
 testAliHLTCorruptorComponent.C:576
 testAliHLTCorruptorComponent.C:577
 testAliHLTCorruptorComponent.C:578
 testAliHLTCorruptorComponent.C:579
 testAliHLTCorruptorComponent.C:580
 testAliHLTCorruptorComponent.C:581
 testAliHLTCorruptorComponent.C:582
 testAliHLTCorruptorComponent.C:583
 testAliHLTCorruptorComponent.C:584
 testAliHLTCorruptorComponent.C:585
 testAliHLTCorruptorComponent.C:586
 testAliHLTCorruptorComponent.C:587
 testAliHLTCorruptorComponent.C:588
 testAliHLTCorruptorComponent.C:589
 testAliHLTCorruptorComponent.C:590
 testAliHLTCorruptorComponent.C:591
 testAliHLTCorruptorComponent.C:592
 testAliHLTCorruptorComponent.C:593
 testAliHLTCorruptorComponent.C:594
 testAliHLTCorruptorComponent.C:595
 testAliHLTCorruptorComponent.C:596
 testAliHLTCorruptorComponent.C:597
 testAliHLTCorruptorComponent.C:598
 testAliHLTCorruptorComponent.C:599
 testAliHLTCorruptorComponent.C:600
 testAliHLTCorruptorComponent.C:601
 testAliHLTCorruptorComponent.C:602
 testAliHLTCorruptorComponent.C:603
 testAliHLTCorruptorComponent.C:604
 testAliHLTCorruptorComponent.C:605
 testAliHLTCorruptorComponent.C:606
 testAliHLTCorruptorComponent.C:607
 testAliHLTCorruptorComponent.C:608
 testAliHLTCorruptorComponent.C:609
 testAliHLTCorruptorComponent.C:610
 testAliHLTCorruptorComponent.C:611
 testAliHLTCorruptorComponent.C:612
 testAliHLTCorruptorComponent.C:613
 testAliHLTCorruptorComponent.C:614
 testAliHLTCorruptorComponent.C:615
 testAliHLTCorruptorComponent.C:616
 testAliHLTCorruptorComponent.C:617
 testAliHLTCorruptorComponent.C:618
 testAliHLTCorruptorComponent.C:619
 testAliHLTCorruptorComponent.C:620
 testAliHLTCorruptorComponent.C:621
 testAliHLTCorruptorComponent.C:622
 testAliHLTCorruptorComponent.C:623
 testAliHLTCorruptorComponent.C:624
 testAliHLTCorruptorComponent.C:625
 testAliHLTCorruptorComponent.C:626
 testAliHLTCorruptorComponent.C:627
 testAliHLTCorruptorComponent.C:628
 testAliHLTCorruptorComponent.C:629
 testAliHLTCorruptorComponent.C:630
 testAliHLTCorruptorComponent.C:631
 testAliHLTCorruptorComponent.C:632
 testAliHLTCorruptorComponent.C:633
 testAliHLTCorruptorComponent.C:634
 testAliHLTCorruptorComponent.C:635
 testAliHLTCorruptorComponent.C:636
 testAliHLTCorruptorComponent.C:637
 testAliHLTCorruptorComponent.C:638
 testAliHLTCorruptorComponent.C:639
 testAliHLTCorruptorComponent.C:640
 testAliHLTCorruptorComponent.C:641
 testAliHLTCorruptorComponent.C:642
 testAliHLTCorruptorComponent.C:643
 testAliHLTCorruptorComponent.C:644
 testAliHLTCorruptorComponent.C:645
 testAliHLTCorruptorComponent.C:646
 testAliHLTCorruptorComponent.C:647
 testAliHLTCorruptorComponent.C:648
 testAliHLTCorruptorComponent.C:649
 testAliHLTCorruptorComponent.C:650
 testAliHLTCorruptorComponent.C:651
 testAliHLTCorruptorComponent.C:652
 testAliHLTCorruptorComponent.C:653
 testAliHLTCorruptorComponent.C:654
 testAliHLTCorruptorComponent.C:655
 testAliHLTCorruptorComponent.C:656
 testAliHLTCorruptorComponent.C:657
 testAliHLTCorruptorComponent.C:658
 testAliHLTCorruptorComponent.C:659
 testAliHLTCorruptorComponent.C:660
 testAliHLTCorruptorComponent.C:661
 testAliHLTCorruptorComponent.C:662
 testAliHLTCorruptorComponent.C:663
 testAliHLTCorruptorComponent.C:664
 testAliHLTCorruptorComponent.C:665
 testAliHLTCorruptorComponent.C:666
 testAliHLTCorruptorComponent.C:667
 testAliHLTCorruptorComponent.C:668
 testAliHLTCorruptorComponent.C:669
 testAliHLTCorruptorComponent.C:670
 testAliHLTCorruptorComponent.C:671
 testAliHLTCorruptorComponent.C:672
 testAliHLTCorruptorComponent.C:673
 testAliHLTCorruptorComponent.C:674
 testAliHLTCorruptorComponent.C:675
 testAliHLTCorruptorComponent.C:676
 testAliHLTCorruptorComponent.C:677
 testAliHLTCorruptorComponent.C:678
 testAliHLTCorruptorComponent.C:679
 testAliHLTCorruptorComponent.C:680
 testAliHLTCorruptorComponent.C:681
 testAliHLTCorruptorComponent.C:682
 testAliHLTCorruptorComponent.C:683
 testAliHLTCorruptorComponent.C:684
 testAliHLTCorruptorComponent.C:685
 testAliHLTCorruptorComponent.C:686
 testAliHLTCorruptorComponent.C:687
 testAliHLTCorruptorComponent.C:688
 testAliHLTCorruptorComponent.C:689
 testAliHLTCorruptorComponent.C:690
 testAliHLTCorruptorComponent.C:691
 testAliHLTCorruptorComponent.C:692
 testAliHLTCorruptorComponent.C:693
 testAliHLTCorruptorComponent.C:694
 testAliHLTCorruptorComponent.C:695
 testAliHLTCorruptorComponent.C:696
 testAliHLTCorruptorComponent.C:697
 testAliHLTCorruptorComponent.C:698
 testAliHLTCorruptorComponent.C:699
 testAliHLTCorruptorComponent.C:700
 testAliHLTCorruptorComponent.C:701
 testAliHLTCorruptorComponent.C:702
 testAliHLTCorruptorComponent.C:703
 testAliHLTCorruptorComponent.C:704
 testAliHLTCorruptorComponent.C:705
 testAliHLTCorruptorComponent.C:706
 testAliHLTCorruptorComponent.C:707
 testAliHLTCorruptorComponent.C:708
 testAliHLTCorruptorComponent.C:709
 testAliHLTCorruptorComponent.C:710
 testAliHLTCorruptorComponent.C:711
 testAliHLTCorruptorComponent.C:712
 testAliHLTCorruptorComponent.C:713
 testAliHLTCorruptorComponent.C:714
 testAliHLTCorruptorComponent.C:715
 testAliHLTCorruptorComponent.C:716
 testAliHLTCorruptorComponent.C:717
 testAliHLTCorruptorComponent.C:718
 testAliHLTCorruptorComponent.C:719
 testAliHLTCorruptorComponent.C:720
 testAliHLTCorruptorComponent.C:721
 testAliHLTCorruptorComponent.C:722
 testAliHLTCorruptorComponent.C:723
 testAliHLTCorruptorComponent.C:724
 testAliHLTCorruptorComponent.C:725
 testAliHLTCorruptorComponent.C:726
 testAliHLTCorruptorComponent.C:727
 testAliHLTCorruptorComponent.C:728
 testAliHLTCorruptorComponent.C:729
 testAliHLTCorruptorComponent.C:730
 testAliHLTCorruptorComponent.C:731
 testAliHLTCorruptorComponent.C:732
 testAliHLTCorruptorComponent.C:733
 testAliHLTCorruptorComponent.C:734
 testAliHLTCorruptorComponent.C:735
 testAliHLTCorruptorComponent.C:736
 testAliHLTCorruptorComponent.C:737
 testAliHLTCorruptorComponent.C:738
 testAliHLTCorruptorComponent.C:739
 testAliHLTCorruptorComponent.C:740
 testAliHLTCorruptorComponent.C:741
 testAliHLTCorruptorComponent.C:742
 testAliHLTCorruptorComponent.C:743
 testAliHLTCorruptorComponent.C:744
 testAliHLTCorruptorComponent.C:745
 testAliHLTCorruptorComponent.C:746
 testAliHLTCorruptorComponent.C:747
 testAliHLTCorruptorComponent.C:748
 testAliHLTCorruptorComponent.C:749
 testAliHLTCorruptorComponent.C:750
 testAliHLTCorruptorComponent.C:751
 testAliHLTCorruptorComponent.C:752
 testAliHLTCorruptorComponent.C:753
 testAliHLTCorruptorComponent.C:754
 testAliHLTCorruptorComponent.C:755
 testAliHLTCorruptorComponent.C:756
 testAliHLTCorruptorComponent.C:757
 testAliHLTCorruptorComponent.C:758
 testAliHLTCorruptorComponent.C:759
 testAliHLTCorruptorComponent.C:760
 testAliHLTCorruptorComponent.C:761
 testAliHLTCorruptorComponent.C:762
 testAliHLTCorruptorComponent.C:763
 testAliHLTCorruptorComponent.C:764
 testAliHLTCorruptorComponent.C:765
 testAliHLTCorruptorComponent.C:766
 testAliHLTCorruptorComponent.C:767
 testAliHLTCorruptorComponent.C:768
 testAliHLTCorruptorComponent.C:769
 testAliHLTCorruptorComponent.C:770
 testAliHLTCorruptorComponent.C:771
 testAliHLTCorruptorComponent.C:772
 testAliHLTCorruptorComponent.C:773
 testAliHLTCorruptorComponent.C:774
 testAliHLTCorruptorComponent.C:775
 testAliHLTCorruptorComponent.C:776
 testAliHLTCorruptorComponent.C:777
 testAliHLTCorruptorComponent.C:778
 testAliHLTCorruptorComponent.C:779
 testAliHLTCorruptorComponent.C:780
 testAliHLTCorruptorComponent.C:781
 testAliHLTCorruptorComponent.C:782
 testAliHLTCorruptorComponent.C:783
 testAliHLTCorruptorComponent.C:784
 testAliHLTCorruptorComponent.C:785
 testAliHLTCorruptorComponent.C:786
 testAliHLTCorruptorComponent.C:787
 testAliHLTCorruptorComponent.C:788
 testAliHLTCorruptorComponent.C:789
 testAliHLTCorruptorComponent.C:790
 testAliHLTCorruptorComponent.C:791
 testAliHLTCorruptorComponent.C:792
 testAliHLTCorruptorComponent.C:793
 testAliHLTCorruptorComponent.C:794
 testAliHLTCorruptorComponent.C:795
 testAliHLTCorruptorComponent.C:796
 testAliHLTCorruptorComponent.C:797
 testAliHLTCorruptorComponent.C:798
 testAliHLTCorruptorComponent.C:799
 testAliHLTCorruptorComponent.C:800
 testAliHLTCorruptorComponent.C:801
 testAliHLTCorruptorComponent.C:802
 testAliHLTCorruptorComponent.C:803
 testAliHLTCorruptorComponent.C:804
 testAliHLTCorruptorComponent.C:805
 testAliHLTCorruptorComponent.C:806
 testAliHLTCorruptorComponent.C:807
 testAliHLTCorruptorComponent.C:808
 testAliHLTCorruptorComponent.C:809
 testAliHLTCorruptorComponent.C:810
 testAliHLTCorruptorComponent.C:811
 testAliHLTCorruptorComponent.C:812
 testAliHLTCorruptorComponent.C:813
 testAliHLTCorruptorComponent.C:814
 testAliHLTCorruptorComponent.C:815
 testAliHLTCorruptorComponent.C:816
 testAliHLTCorruptorComponent.C:817
 testAliHLTCorruptorComponent.C:818
 testAliHLTCorruptorComponent.C:819
 testAliHLTCorruptorComponent.C:820
 testAliHLTCorruptorComponent.C:821
 testAliHLTCorruptorComponent.C:822
 testAliHLTCorruptorComponent.C:823
 testAliHLTCorruptorComponent.C:824
 testAliHLTCorruptorComponent.C:825
 testAliHLTCorruptorComponent.C:826
 testAliHLTCorruptorComponent.C:827
 testAliHLTCorruptorComponent.C:828
 testAliHLTCorruptorComponent.C:829
 testAliHLTCorruptorComponent.C:830
 testAliHLTCorruptorComponent.C:831
 testAliHLTCorruptorComponent.C:832
 testAliHLTCorruptorComponent.C:833
 testAliHLTCorruptorComponent.C:834
 testAliHLTCorruptorComponent.C:835
 testAliHLTCorruptorComponent.C:836
 testAliHLTCorruptorComponent.C:837
 testAliHLTCorruptorComponent.C:838
 testAliHLTCorruptorComponent.C:839
 testAliHLTCorruptorComponent.C:840
 testAliHLTCorruptorComponent.C:841
 testAliHLTCorruptorComponent.C:842
 testAliHLTCorruptorComponent.C:843
 testAliHLTCorruptorComponent.C:844
 testAliHLTCorruptorComponent.C:845
 testAliHLTCorruptorComponent.C:846
 testAliHLTCorruptorComponent.C:847
 testAliHLTCorruptorComponent.C:848
 testAliHLTCorruptorComponent.C:849
 testAliHLTCorruptorComponent.C:850
 testAliHLTCorruptorComponent.C:851
 testAliHLTCorruptorComponent.C:852
 testAliHLTCorruptorComponent.C:853
 testAliHLTCorruptorComponent.C:854
 testAliHLTCorruptorComponent.C:855
 testAliHLTCorruptorComponent.C:856
 testAliHLTCorruptorComponent.C:857
 testAliHLTCorruptorComponent.C:858
 testAliHLTCorruptorComponent.C:859
 testAliHLTCorruptorComponent.C:860
 testAliHLTCorruptorComponent.C:861
 testAliHLTCorruptorComponent.C:862
 testAliHLTCorruptorComponent.C:863
 testAliHLTCorruptorComponent.C:864
 testAliHLTCorruptorComponent.C:865
 testAliHLTCorruptorComponent.C:866
 testAliHLTCorruptorComponent.C:867
 testAliHLTCorruptorComponent.C:868
 testAliHLTCorruptorComponent.C:869
 testAliHLTCorruptorComponent.C:870
 testAliHLTCorruptorComponent.C:871
 testAliHLTCorruptorComponent.C:872
 testAliHLTCorruptorComponent.C:873
 testAliHLTCorruptorComponent.C:874
 testAliHLTCorruptorComponent.C:875
 testAliHLTCorruptorComponent.C:876
 testAliHLTCorruptorComponent.C:877
 testAliHLTCorruptorComponent.C:878
 testAliHLTCorruptorComponent.C:879
 testAliHLTCorruptorComponent.C:880
 testAliHLTCorruptorComponent.C:881
 testAliHLTCorruptorComponent.C:882
 testAliHLTCorruptorComponent.C:883
 testAliHLTCorruptorComponent.C:884
 testAliHLTCorruptorComponent.C:885
 testAliHLTCorruptorComponent.C:886
 testAliHLTCorruptorComponent.C:887
 testAliHLTCorruptorComponent.C:888
 testAliHLTCorruptorComponent.C:889
 testAliHLTCorruptorComponent.C:890
 testAliHLTCorruptorComponent.C:891
 testAliHLTCorruptorComponent.C:892
 testAliHLTCorruptorComponent.C:893
 testAliHLTCorruptorComponent.C:894
 testAliHLTCorruptorComponent.C:895
 testAliHLTCorruptorComponent.C:896
 testAliHLTCorruptorComponent.C:897
 testAliHLTCorruptorComponent.C:898
 testAliHLTCorruptorComponent.C:899
 testAliHLTCorruptorComponent.C:900
 testAliHLTCorruptorComponent.C:901
 testAliHLTCorruptorComponent.C:902
 testAliHLTCorruptorComponent.C:903
 testAliHLTCorruptorComponent.C:904
 testAliHLTCorruptorComponent.C:905
 testAliHLTCorruptorComponent.C:906
 testAliHLTCorruptorComponent.C:907
 testAliHLTCorruptorComponent.C:908
 testAliHLTCorruptorComponent.C:909
 testAliHLTCorruptorComponent.C:910
 testAliHLTCorruptorComponent.C:911
 testAliHLTCorruptorComponent.C:912
 testAliHLTCorruptorComponent.C:913
 testAliHLTCorruptorComponent.C:914
 testAliHLTCorruptorComponent.C:915
 testAliHLTCorruptorComponent.C:916
 testAliHLTCorruptorComponent.C:917
 testAliHLTCorruptorComponent.C:918
 testAliHLTCorruptorComponent.C:919
 testAliHLTCorruptorComponent.C:920
 testAliHLTCorruptorComponent.C:921
 testAliHLTCorruptorComponent.C:922
 testAliHLTCorruptorComponent.C:923
 testAliHLTCorruptorComponent.C:924
 testAliHLTCorruptorComponent.C:925
 testAliHLTCorruptorComponent.C:926
 testAliHLTCorruptorComponent.C:927
 testAliHLTCorruptorComponent.C:928
 testAliHLTCorruptorComponent.C:929
 testAliHLTCorruptorComponent.C:930
 testAliHLTCorruptorComponent.C:931
 testAliHLTCorruptorComponent.C:932
 testAliHLTCorruptorComponent.C:933
 testAliHLTCorruptorComponent.C:934
 testAliHLTCorruptorComponent.C:935
 testAliHLTCorruptorComponent.C:936
 testAliHLTCorruptorComponent.C:937
 testAliHLTCorruptorComponent.C:938
 testAliHLTCorruptorComponent.C:939
 testAliHLTCorruptorComponent.C:940
 testAliHLTCorruptorComponent.C:941
 testAliHLTCorruptorComponent.C:942
 testAliHLTCorruptorComponent.C:943
 testAliHLTCorruptorComponent.C:944
 testAliHLTCorruptorComponent.C:945
 testAliHLTCorruptorComponent.C:946
 testAliHLTCorruptorComponent.C:947
 testAliHLTCorruptorComponent.C:948
 testAliHLTCorruptorComponent.C:949
 testAliHLTCorruptorComponent.C:950
 testAliHLTCorruptorComponent.C:951
 testAliHLTCorruptorComponent.C:952
 testAliHLTCorruptorComponent.C:953
 testAliHLTCorruptorComponent.C:954
 testAliHLTCorruptorComponent.C:955
 testAliHLTCorruptorComponent.C:956
 testAliHLTCorruptorComponent.C:957
 testAliHLTCorruptorComponent.C:958
 testAliHLTCorruptorComponent.C:959
 testAliHLTCorruptorComponent.C:960
 testAliHLTCorruptorComponent.C:961
 testAliHLTCorruptorComponent.C:962
 testAliHLTCorruptorComponent.C:963
 testAliHLTCorruptorComponent.C:964
 testAliHLTCorruptorComponent.C:965
 testAliHLTCorruptorComponent.C:966
 testAliHLTCorruptorComponent.C:967
 testAliHLTCorruptorComponent.C:968
 testAliHLTCorruptorComponent.C:969
 testAliHLTCorruptorComponent.C:970
 testAliHLTCorruptorComponent.C:971
 testAliHLTCorruptorComponent.C:972
 testAliHLTCorruptorComponent.C:973
 testAliHLTCorruptorComponent.C:974
 testAliHLTCorruptorComponent.C:975
 testAliHLTCorruptorComponent.C:976
 testAliHLTCorruptorComponent.C:977