00001
00002
00003 #include <config.h>
00004 #include <cppunit/extensions/HelperMacros.h>
00005 #include <cppunit/Asserter.h>
00006 #include "Asserts.h"
00007
00008 #include "CCAENV1x90Data.h"
00009
00010 #ifdef HAVE_STD_NAMESPACE
00011 using namespace std;
00012 #endif
00013
00014 using namespace CCAENV1x90Data;
00015
00016 class DataTests : public CppUnit::TestFixture {
00017 CPPUNIT_TEST_SUITE(DataTests);
00018 CPPUNIT_TEST(DataTypes);
00019 CPPUNIT_TEST(GlobalHeaderFields);
00020 CPPUNIT_TEST(TDCHeaderFields);
00021 CPPUNIT_TEST(TDCChipNumber);
00022 CPPUNIT_TEST(EventIdTest);
00023 CPPUNIT_TEST(TDCWordCountTest);
00024 CPPUNIT_TEST(TestMeasurement);
00025 CPPUNIT_TEST(ErrorBitsTest);
00026 CPPUNIT_TEST(TriggerTimeTest);
00027 CPPUNIT_TEST(GlobalTrailerTest);
00028 CPPUNIT_TEST_SUITE_END();
00029
00030
00031 private:
00032
00033 public:
00034 void setUp() {
00035 }
00036 void tearDown() {
00037 }
00038 protected:
00039 void DataTypes();
00040 void GlobalHeaderFields();
00041 void TDCHeaderFields();
00042 void TDCChipNumber();
00043 void EventIdTest();
00044 void TDCWordCountTest();
00045 void TestMeasurement();
00046 void ErrorBitsTest();
00047 void TriggerTimeTest();
00048 void GlobalTrailerTest();
00049 };
00050
00051
00052
00053 CPPUNIT_TEST_SUITE_REGISTRATION(DataTests);
00054
00055
00056
00057
00058
00059 static const int GlobalHeader(0x40000aac);
00060 static const int TDCHeader(0x0e123567);
00061
00062 static const int Measurement(0x06281234);
00063
00064 static const int TDCTrailer(0x1a321666);
00065
00066
00067 static const int TDCError(0x25ff5a5a);
00068
00069
00070 static const int TTimeTag(0x88789abc);
00071
00072 static const int GlobalTrailer(0x87f033e5);
00073
00074
00075 static const int Filler(0xc7ffffff);
00076
00077
00078
00079
00080 void
00081 DataTests::DataTypes()
00082 {
00083
00084
00085 ASSERT(isGlobalHeader(GlobalHeader));
00086 ASSERT(!isGlobalTrailer(GlobalHeader));
00087 ASSERT(!isTDCHeader(GlobalHeader));
00088 ASSERT(!isTDCTrailer(GlobalHeader));
00089 ASSERT(!isTDCError(GlobalHeader));
00090 ASSERT(!isMeasurement(GlobalHeader));
00091 ASSERT(!isTriggerTimeTag(GlobalHeader));
00092 ASSERT(!isFiller(GlobalHeader));
00093
00094
00095
00096 ASSERT(!isGlobalHeader(TDCHeader));
00097 ASSERT(!isGlobalTrailer(TDCHeader));
00098 ASSERT(isTDCHeader(TDCHeader));
00099 ASSERT(!isTDCTrailer(TDCHeader));
00100 ASSERT(!isTDCError(TDCHeader));
00101 ASSERT(!isMeasurement(TDCHeader));
00102 ASSERT(!isTriggerTimeTag(TDCHeader));
00103 ASSERT(!isFiller(TDCHeader));
00104
00105
00106
00107
00108 ASSERT(!isGlobalHeader(Measurement));
00109 ASSERT(!isGlobalTrailer(Measurement));
00110 ASSERT(!isTDCHeader(Measurement));
00111 ASSERT(!isTDCTrailer(Measurement));
00112 ASSERT(!isTDCError(Measurement));
00113 ASSERT(isMeasurement(Measurement));
00114 ASSERT(!isTriggerTimeTag(Measurement));
00115 ASSERT(!isFiller(Measurement));
00116
00117
00118
00119 ASSERT(!isGlobalHeader(TDCTrailer));
00120 ASSERT(!isGlobalTrailer(TDCTrailer));
00121 ASSERT(!isTDCHeader(TDCTrailer));
00122 ASSERT(isTDCTrailer(TDCTrailer));
00123 ASSERT(!isTDCError(TDCTrailer));
00124 ASSERT(!isMeasurement(TDCTrailer));
00125 ASSERT(!isTriggerTimeTag(TDCTrailer));
00126 ASSERT(!isFiller(TDCTrailer));
00127
00128
00129
00130 ASSERT(!isGlobalHeader(TDCError));
00131 ASSERT(!isGlobalTrailer(TDCError));
00132 ASSERT(!isTDCHeader(TDCError));
00133 ASSERT(!isTDCTrailer(TDCError));
00134 ASSERT(isTDCError(TDCError));
00135 ASSERT(!isMeasurement(TDCError));
00136 ASSERT(!isTriggerTimeTag(TDCError));
00137 ASSERT(!isFiller(TDCError));
00138
00139
00140
00141 ASSERT(!isGlobalHeader(TTimeTag));
00142 ASSERT(!isGlobalTrailer(TTimeTag));
00143 ASSERT(!isTDCHeader(TTimeTag));
00144 ASSERT(!isTDCTrailer(TTimeTag));
00145 ASSERT(!isTDCError(TTimeTag));
00146 ASSERT(!isMeasurement(TTimeTag));
00147 ASSERT(isTriggerTimeTag(TTimeTag));
00148 ASSERT(!isFiller(TTimeTag));
00149
00150
00151
00152 ASSERT(!isGlobalHeader(GlobalTrailer));
00153 ASSERT(isGlobalTrailer(GlobalTrailer));
00154 ASSERT(!isTDCHeader(GlobalTrailer));
00155 ASSERT(!isTDCTrailer(GlobalTrailer));
00156 ASSERT(!isTDCError(GlobalTrailer));
00157 ASSERT(!isMeasurement(GlobalTrailer));
00158 ASSERT(!isTriggerTimeTag(GlobalTrailer));
00159 ASSERT(!isFiller(GlobalTrailer));
00160
00161
00162
00163 ASSERT(!isGlobalHeader(Filler));
00164 ASSERT(!isGlobalTrailer(Filler));
00165 ASSERT(!isTDCHeader(Filler));
00166 ASSERT(!isTDCTrailer(Filler));
00167 ASSERT(!isTDCError(Filler));
00168 ASSERT(!isMeasurement(Filler));
00169 ASSERT(!isTriggerTimeTag(Filler));
00170 ASSERT(isFiller(Filler));
00171 }
00172
00177 void
00178 DataTests::GlobalHeaderFields()
00179 {
00180
00181
00182
00183 EQMSG("Global header Trigger Number", 0x55, TriggerNumber(GlobalHeader));
00184 EQMSG("Global header Board Number", (unsigned int)12, BoardNumber(GlobalHeader));
00185
00186
00187
00188 EXCEPTION(TriggerNumber(Filler), string);
00189 EXCEPTION(BoardNumber(Filler), string);
00190
00191 }
00197 void
00198 DataTests::TDCHeaderFields()
00199 {
00200 EQMSG("TDC Chip", 2, (int)TDCChip(TDCHeader));
00201 EQMSG("TDC Event", 0x123, (int)EventId(TDCHeader));
00202 EQMSG("TDC Bunchid", 0x567, (int)BunchId(TDCHeader));
00203
00204
00205
00206
00207
00208 EXCEPTION(TDCChip(GlobalHeader), string);
00209 EXCEPTION(EventId(GlobalHeader), string);
00210 EXCEPTION(BunchId(GlobalHeader), string);
00211
00212 }
00216 void
00217 DataTests::TDCChipNumber()
00218 {
00219 EQMSG("Trailer ", 2, (int) TDCChip(TDCTrailer));
00220 EQMSG("Error ", 1, (int) TDCChip(TDCError));
00221 }
00225 void
00226 DataTests::EventIdTest()
00227 {
00228 EQMSG("Trailer: ", 0x321, (int)EventId(TDCTrailer));
00229 }
00233 void
00234 DataTests::TDCWordCountTest()
00235 {
00236 EQMSG("TDC trailer word count ",
00237 0x666, (int)TDCWordCount(TDCTrailer));
00238
00239 EXCEPTION(TDCWordCount(Filler), string);
00240
00241 }
00245 void
00246 DataTests::TestMeasurement()
00247 {
00248
00249
00250
00251 EQMSG("isTrailing: ", true, isTrailing(Measurement));
00252 EQMSG("ChannelNumber: ", 69, ChannelNumber(Measurement));
00253 EQMSG("Channel value: ", 0x1234L, ChannelValue(Measurement));
00254
00255
00256
00257 EXCEPTION(isTrailing(Filler), string);
00258 EXCEPTION(ChannelNumber(Filler), string);
00259 EXCEPTION(ChannelValue(Filler), string);
00260
00261 }
00262
00266 void
00267 DataTests::ErrorBitsTest()
00268 {
00269 EQMSG(" Error Bits", 0x5a5a, (int)TDCErrorBits(TDCError));
00270
00271 EXCEPTION((TDCErrorBits(Filler)), string)
00272
00273
00274 }
00278 void
00279 DataTests::TriggerTimeTest()
00280 {
00281 EQMSG(" TriggerTime ", 0x789abcUL , ExtendedTriggerTime(TTimeTag));
00282
00283 EXCEPTION(ExtendedTriggerTime(Filler), string);
00284 }
00288 void
00289 DataTests::GlobalTrailerTest()
00290 {
00291
00292
00293 EQMSG("Overflow ", true, Overflow(GlobalTrailer));
00294 EQMSG("Error ", true, Error(GlobalTrailer));
00295 EQMSG("Lost ", true, Lost(GlobalTrailer));
00296 EQMSG("GEO ", 5, (int)BoardNumber(GlobalTrailer));
00297 EQMSG("Event Size ", 0x819f, (int)EventSize(GlobalTrailer));
00298
00299
00300
00301 EXCEPTION(Overflow(Filler), string);
00302 EXCEPTION(Error(Filler), string);
00303 EXCEPTION(Lost(Filler), string);
00304 EXCEPTION(BoardNumber(Filler), string);
00305 EXCEPTION(EventSize(Filler), string);
00306
00307 }