00001 // Template for a test suite. 00002 00003 #include <config.h> 00004 #include <cppunit/extensions/HelperMacros.h> 00005 #include <cppunit/Asserter.h> 00006 #include "Asserts.h" 00007 #include "CCAENV1x90.h" 00008 00009 #ifdef HAVE_STD_NAMESPACE 00010 using namespace std; 00011 #endif 00012 00013 00014 extern long ModuleBase; 00015 00016 class TriggerTimeTagTests : public CppUnit::TestFixture { 00017 CPPUNIT_TEST_SUITE(TriggerTimeTagTests); 00018 CPPUNIT_TEST(Enable); 00019 CPPUNIT_TEST(Disable); 00020 CPPUNIT_TEST_SUITE_END(); 00021 00022 00023 private: 00024 CCAENV1x90* m_pModule; 00025 00026 public: 00027 // Construct a module in powered up condition: 00028 00029 void setUp() { 00030 m_pModule = new CCAENV1x90(1, 0, ModuleBase); 00031 m_pModule->Reset(); 00032 } 00033 // Delete the module to prevent resource leaks. 00034 00035 void tearDown() { 00036 delete m_pModule; 00037 } 00038 protected: 00039 void Enable(); 00040 void Disable(); 00041 }; 00042 00043 CPPUNIT_TEST_SUITE_REGISTRATION(TriggerTimeTagTests); 00044 00045 00046 // After enabling 00047 // The trigger time tag enable bit should be set in the control register. 00048 00049 void TriggerTimeTagTests::Enable() { 00050 m_pModule->EnableTriggerTagTime(); 00051 unsigned short cr = m_pModule->ReadCR(); 00052 ASSERT((cr & 0x200) != 0); 00053 } 00054 00055 00056 // Should be able to turn off trigger time tag. 00057 00058 void 00059 TriggerTimeTagTests::Disable() 00060 { 00061 m_pModule->DisableTriggerTagTime(); 00062 unsigned short cr = m_pModule->ReadCR(); 00063 ASSERT((cr & 0x200) == 0); 00064 00065 }