int main() {
    UsdUtilsCoalescingDiagnosticDelegate delegate;

    EmitWarnings();
    auto coalesced = delegate.TakeCoalescedDiagnostics();
    assert(coalesced.size() == 4);
    
    EmitWarnings();
    EmitStatuses();
    coalesced = delegate.TakeCoalescedDiagnostics();
    assert(coalesced.size() == 8);

    // ensure that the line numbers are unique
    std::set<size_t> sourceLineNumbers;
    for (const auto& p : coalesced) {
        sourceLineNumbers.insert(p.sharedItem.sourceLineNumber); 
    }
    assert(sourceLineNumbers.size() == 8); 

    EmitWarnings();
    EmitWarnings();
    auto unfiltered = delegate.TakeUncoalescedDiagnostics();
    assert(unfiltered.size() == 12);

    // ensure that the line numbers are not unique
    sourceLineNumbers.clear();
    for (const auto& i : unfiltered) {
        sourceLineNumbers.insert(i->GetSourceLineNumber());
    }
    assert(sourceLineNumbers.size() == 4); 

    std::cout << "-------------------------------------------\n";
    EmitWarnings();
    EmitWarnings();
    EmitStatuses();
    EmitStatuses();
    EmitWarnings();
    delegate.DumpCoalescedDiagnostics(std::cout);

    std::cout << "-------------------------------------------\n";

    EmitWarnings();
    EmitWarnings();
    EmitStatuses();
    EmitStatuses();
    EmitWarnings();
    delegate.DumpUncoalescedDiagnostics(std::cout);

    std::cout << "-------------------------------------------\n";
}
Пример #2
0
void ProcessCommands( void )
{
    InitOmfUtil();
    if( !Options.new_library ) {
        WalkInputLib();
    }
    DelModules();
    AddModules();
    CleanFileTab();
    if( Options.modified || Options.new_library ) {
        WriteNewLib();
    }
    if( Options.list_contents ) {
        ListContents();
    }
    EmitWarnings();
    FiniOmfUtil();
}