From: James P. T. <jpt...@us...> - 2007-09-14 16:34:30
|
Update of /cvsroot/aaf/AAF/Utilities/AAFAnalyzer/EditProtocolTestImpl In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv20749/Utilities/AAFAnalyzer/EditProtocolTestImpl Modified Files: EPMobDepPhase.cpp EPMultiChannelAudioTest.cpp EPMultiChannelAudioTest.h EPMultiChannelAudioVisitor.cpp EPMultiChannelAudioVisitor.h EPTrackContentsVisitor.cpp Log Message: Reactivate AAFAnalyzer regression tests. Simplifed the TestStructure code by comparing to expected result file rather than coding all tests - that's good enough and easier to maintain. Modifications as required to get all TestFile tests working again. Reviewed and updated the expected result files. They've changed as a result of the modifications that were done to simplify the TestResult class. All regression tests passing on Linux. "check" target working again in the analyzer's top level makefile. Index: EPMultiChannelAudioTest.h =================================================================== RCS file: /cvsroot/aaf/AAF/Utilities/AAFAnalyzer/EditProtocolTestImpl/EPMultiChannelAudioTest.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** EPMultiChannelAudioTest.h 1 Dec 2005 19:18:18 -0000 1.1 --- EPMultiChannelAudioTest.h 14 Sep 2007 15:40:02 -0000 1.2 *************** *** 22,25 **** --- 22,28 ---- #define __EPMultiChannelAudioTest_h_ + //Base files + #include <CompMobDependency.h> + //Test/Result files #include <Test.h> *************** *** 39,43 **** EPMultiChannelAudioTest( wostream& log, ! shared_ptr<const TestGraph> spGraph ); virtual ~EPMultiChannelAudioTest(); --- 42,47 ---- EPMultiChannelAudioTest( wostream& log, ! shared_ptr<const TestGraph> spGraph, ! CompMobDependency::CompMobNodeVectorSP spTopLevelCompMobs ); virtual ~EPMultiChannelAudioTest(); *************** *** 54,57 **** --- 58,62 ---- EPMultiChannelAudioTest& operator=( const EPMultiChannelAudioTest& ); + CompMobDependency::CompMobNodeVectorSP _spTopLevelCompMobs; }; Index: EPMultiChannelAudioVisitor.h =================================================================== RCS file: /cvsroot/aaf/AAF/Utilities/AAFAnalyzer/EditProtocolTestImpl/EPMultiChannelAudioVisitor.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** EPMultiChannelAudioVisitor.h 21 Aug 2007 14:08:30 -0000 1.2 --- EPMultiChannelAudioVisitor.h 14 Sep 2007 15:40:02 -0000 1.3 *************** *** 54,59 **** virtual bool PostOrderVisit( AAFTypedObjNode<IAAFMasterMob>& node ); - virtual bool EdgeVisit( AAFMobReference& edge ); - private: --- 54,57 ---- Index: EPMobDepPhase.cpp =================================================================== RCS file: /cvsroot/aaf/AAF/Utilities/AAFAnalyzer/EditProtocolTestImpl/EPMobDepPhase.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** EPMobDepPhase.cpp 21 Aug 2007 14:08:29 -0000 1.15 --- EPMobDepPhase.cpp 14 Sep 2007 15:40:02 -0000 1.16 *************** *** 111,117 **** // Seventh, run the locator test ! //TODO: Uncomment this line when the test is running properly. ! // shared_ptr<EPLocatorTest> locatorTest( new EPLocatorTest( _log, _spGraph ) ); ! // spPhaseResult->AppendSubtestResult( locatorTest->Execute() ); // Eighth, run the edit rate test --- 111,117 ---- // Seventh, run the locator test ! // TODO: Uncomment this line when the test is running properly. ! // shared_ptr<EPLocatorTest> locatorTest( new EPLocatorTest( _log, _spGraph ) ); ! // spPhaseResult->AppendSubtestResult( locatorTest->Execute() ); // Eighth, run the edit rate test *************** *** 124,129 **** // Tenth, run the annotation test ! // shared_ptr<EPAnnotationTest> annotationTest( new EPAnnotationTest( _log, _spGraph ) ); ! // spPhaseResult->AppendSubtestResult( annotationTest->Execute() ); // Eleventh, run the definition test --- 124,129 ---- // Tenth, run the annotation test ! shared_ptr<EPAnnotationTest> annotationTest( new EPAnnotationTest( _log, _spGraph ) ); ! spPhaseResult->AppendSubtestResult( annotationTest->Execute() ); // Eleventh, run the definition test *************** *** 140,144 **** // Fourteenth, run the multi-channel audio test ! shared_ptr<EPMultiChannelAudioTest> mcaTest( new EPMultiChannelAudioTest( _log, _spGraph ) ); spPhaseResult->AppendSubtestResult( mcaTest->Execute() ); --- 140,144 ---- // Fourteenth, run the multi-channel audio test ! shared_ptr<EPMultiChannelAudioTest> mcaTest( new EPMultiChannelAudioTest( _log, _spGraph, spPostDecorateRoots ) ); spPhaseResult->AppendSubtestResult( mcaTest->Execute() ); Index: EPMultiChannelAudioVisitor.cpp =================================================================== RCS file: /cvsroot/aaf/AAF/Utilities/AAFAnalyzer/EditProtocolTestImpl/EPMultiChannelAudioVisitor.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** EPMultiChannelAudioVisitor.cpp 21 Aug 2007 14:08:29 -0000 1.2 --- EPMultiChannelAudioVisitor.cpp 14 Sep 2007 15:40:02 -0000 1.3 *************** *** 42,50 **** using namespace boost; ! EPMultiChannelAudioVisitor::EPMultiChannelAudioVisitor( wostream& log, ! shared_ptr<TestLevelTestResult> spTestResult ) ! : _log( log ), ! _spTestResult( spTestResult ), ! _level( 0 ) {} --- 42,51 ---- using namespace boost; ! EPMultiChannelAudioVisitor::EPMultiChannelAudioVisitor( wostream& log, ! shared_ptr<TestLevelTestResult> spTestResult ) ! : EPTypedVisitor( Visitor::FOLLOW_REFERENCES ), ! _log( log ), ! _spTestResult( spTestResult ), ! _level( 0 ) {} *************** *** 54,60 **** bool EPMultiChannelAudioVisitor::PreOrderVisit( EPTypedObjNode<IAAFSourceMob, EPMultiChannelAudioFileSource>& node ) { ! //Do not continue this traversal if the path has already been traversed from ! //a ancestor composition or master mob OR if the parent of this node does ! //not fall under a composition or master mob in the current traversal path. if ( this->HaveVisited( node.GetLID() ) || _level == 0 ) { --- 55,62 ---- bool EPMultiChannelAudioVisitor::PreOrderVisit( EPTypedObjNode<IAAFSourceMob, EPMultiChannelAudioFileSource>& node ) { ! // Do not continue this traversal if the path has already been ! // traversed from a ancestor composition or master mob OR if the ! // parent of this node does not fall under a composition or master ! // mob in the current traversal path. if ( this->HaveVisited( node.GetLID() ) || _level == 0 ) { *************** *** 62,69 **** } ! //This node has not yet been visited, but is now being visited and has an ! //ancestor that is a master mob or a composition mob, therefore REQ_EP_110 ! //has been violated. AxSourceMob axMob( node.GetAAFObjectOfType() ); _spTestResult->AddSingleResult( L"REQ_EP_110", --- 64,73 ---- } ! // This node has not yet been visited, but is now being visited ! // and has an ancestor that is a master mob or a composition mob, ! // therefore REQ_EP_110 has been violated. ! AxSourceMob axMob( node.GetAAFObjectOfType() ); + _spTestResult->AddSingleResult( L"REQ_EP_110", *************** *** 143,153 **** return true; } ! ! bool EPMultiChannelAudioVisitor::EdgeVisit( AAFMobReference& edge ) ! { ! //Must follow Mob References to verify multi-channel audio is not ! //incorrectly used. ! return true; ! } ! } // end of namespace aafanalyzer --- 147,150 ---- return true; } ! } // end of namespace aafanalyzer Index: EPMultiChannelAudioTest.cpp =================================================================== RCS file: /cvsroot/aaf/AAF/Utilities/AAFAnalyzer/EditProtocolTestImpl/EPMultiChannelAudioTest.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** EPMultiChannelAudioTest.cpp 21 Aug 2007 14:08:29 -0000 1.2 --- EPMultiChannelAudioTest.cpp 14 Sep 2007 15:40:02 -0000 1.3 *************** *** 39,47 **** --- 39,86 ---- #include <vector> + #include <iostream> + namespace { + using namespace std; + using namespace boost; + using namespace aafanalyzer; + const wchar_t* TEST_NAME = L"Edit Protocol Multi-Channel Audio Test"; const wchar_t* TEST_DESC = L"Verify that multi-channel audio is used correctly within the AAF file."; + //====================================================================== + + class Analyzer + { + public: + Analyzer( wostream& os, + shared_ptr<const TestGraph> spGraph, + shared_ptr<TestLevelTestResult> spTestResult ) + : _os( os ), + _spGraph( spGraph ), + _spTestResult( spTestResult ) + {} + + void operator () ( const CompMobDependency::CompMobNodeSP& spRootComposition ) + { + shared_ptr<EPMultiChannelAudioVisitor> + spVisitor( new EPMultiChannelAudioVisitor( _os, _spTestResult ) ); + + DepthFirstTraversal dfs( _spGraph->GetEdgeMap(), spRootComposition ); + dfs.TraverseDown( spVisitor ); + } + + private: + wostream& _os; + shared_ptr<const TestGraph> _spGraph; + shared_ptr<TestLevelTestResult> _spTestResult; + + // prohibited + Analyzer(); + Analyzer& operator=( const Analyzer& ); + }; + + } // end of namespace *************** *** 53,60 **** EPMultiChannelAudioTest::EPMultiChannelAudioTest( wostream& log, ! shared_ptr<const TestGraph> spGraph ) ! : Test( log, GetTestInfo() ) { ! SetTestGraph(spGraph); } --- 92,101 ---- EPMultiChannelAudioTest::EPMultiChannelAudioTest( wostream& log, ! shared_ptr<const TestGraph> spGraph, ! CompMobDependency::CompMobNodeVectorSP spTopLevelCompMobs ) ! : Test( log, GetTestInfo() ), ! _spTopLevelCompMobs( spTopLevelCompMobs ) { ! SetTestGraph(spGraph); } *************** *** 66,74 **** shared_ptr<TestLevelTestResult> spTestResult = CreateTestResult(); ! shared_ptr<EPMultiChannelAudioVisitor> ! spVisitor( new EPMultiChannelAudioVisitor( GetOutStream(), spTestResult ) ); ! DepthFirstTraversal dfs(GetTestGraph()->GetEdgeMap(), GetTestGraph()->GetRootNode()); ! dfs.TraverseDown( spVisitor, GetTestGraph()->GetRootNode() ); return spTestResult; --- 107,113 ---- shared_ptr<TestLevelTestResult> spTestResult = CreateTestResult(); ! Analyzer analyzer( GetOutStream(), GetTestGraph(), spTestResult ); ! for_each( _spTopLevelCompMobs->begin(), _spTopLevelCompMobs->end(), analyzer ); return spTestResult; Index: EPTrackContentsVisitor.cpp =================================================================== RCS file: /cvsroot/aaf/AAF/Utilities/AAFAnalyzer/EditProtocolTestImpl/EPTrackContentsVisitor.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** EPTrackContentsVisitor.cpp 21 Aug 2007 14:08:30 -0000 1.9 --- EPTrackContentsVisitor.cpp 14 Sep 2007 15:40:04 -0000 1.10 *************** *** 197,221 **** << markIn.second << L"; OUT = " << markOut.second << ")."; _spTestResult->AddSingleResult( L"REQ_EP_108", ss.str().c_str(), TestResult::WARN ); - return false; } } else { ! AxString explain; ! if ( markIn.first ) ! { ! explain = this->GetMobSlotName( _spEdgeMap, node ) + ! L" has a marked in point but no marked out point."; ! } ! else ! { ! assert( !markOut.first ); ! explain = this->GetMobSlotName( _spEdgeMap, node ) + ! L" has a marked out point but no marked in point."; ! } ! _spTestResult->AddSingleResult( L"REQ_EP_108", explain, TestResult::WARN ); ! return false; } ! return true; } --- 197,221 ---- << markIn.second << L"; OUT = " << markOut.second << ")."; _spTestResult->AddSingleResult( L"REQ_EP_108", ss.str().c_str(), TestResult::WARN ); } } + else if ( markIn.first && !markOut.first ) + { + AxString explain; + explain = this->GetMobSlotName( _spEdgeMap, node ) + + L" has a marked in point but no marked out point."; + _spTestResult->AddSingleResult( L"REQ_EP_108", explain, TestResult::WARN ); + } + else if ( !markIn.first && markOut.first ) + { + AxString explain; + explain = this->GetMobSlotName( _spEdgeMap, node ) + + L" has a marked out point but no marked in point."; + _spTestResult->AddSingleResult( L"REQ_EP_108", explain, TestResult::WARN ); + } else { ! assert( !markIn.first && !markOut.first ); } ! return true; } |