├── .gitignore ├── .m2 └── settings.xml ├── LICENSE ├── README.adoc ├── README.dev.adoc ├── ctfreader ├── LICENSE ├── java-only-sources.properties ├── pom.xml └── src │ ├── main │ ├── antlr3 │ │ └── org │ │ │ └── eclipse │ │ │ └── tracecompass │ │ │ └── ctf │ │ │ └── parser │ │ │ ├── CTFLexer.g │ │ │ └── CTFParser.g │ └── java │ │ └── org │ │ └── eclipse │ │ └── tracecompass │ │ ├── ctf │ │ └── core │ │ │ ├── CTFException.java │ │ │ ├── CTFStrings.java │ │ │ ├── event │ │ │ ├── CTFClock.java │ │ │ ├── IEventDeclaration.java │ │ │ ├── IEventDefinition.java │ │ │ ├── io │ │ │ │ └── BitBuffer.java │ │ │ ├── metadata │ │ │ │ ├── DeclarationScope.java │ │ │ │ └── ParseException.java │ │ │ ├── scope │ │ │ │ ├── EventHeaderScope.java │ │ │ │ ├── EventHeaderVScope.java │ │ │ │ ├── FieldsScope.java │ │ │ │ ├── IDefinitionScope.java │ │ │ │ ├── ILexicalScope.java │ │ │ │ ├── LexicalScope.java │ │ │ │ ├── PacketHeaderScope.java │ │ │ │ └── RootScope.java │ │ │ └── types │ │ │ │ ├── AbstractArrayDefinition.java │ │ │ │ ├── ArrayDeclaration.java │ │ │ │ ├── ArrayDefinition.java │ │ │ │ ├── ByteArrayDefinition.java │ │ │ │ ├── CompoundDeclaration.java │ │ │ │ ├── Declaration.java │ │ │ │ ├── Definition.java │ │ │ │ ├── Encoding.java │ │ │ │ ├── EnumDeclaration.java │ │ │ │ ├── EnumDefinition.java │ │ │ │ ├── FloatDeclaration.java │ │ │ │ ├── FloatDefinition.java │ │ │ │ ├── ICompositeDefinition.java │ │ │ │ ├── IDeclaration.java │ │ │ │ ├── IDefinition.java │ │ │ │ ├── IEventHeaderDeclaration.java │ │ │ │ ├── ISimpleDatatypeDeclaration.java │ │ │ │ ├── IntegerDeclaration.java │ │ │ │ ├── IntegerDefinition.java │ │ │ │ ├── ScopedDefinition.java │ │ │ │ ├── SequenceDeclaration.java │ │ │ │ ├── SimpleDatatypeDefinition.java │ │ │ │ ├── StringDeclaration.java │ │ │ │ ├── StringDefinition.java │ │ │ │ ├── StructDeclaration.java │ │ │ │ ├── StructDeclarationFlattener.java │ │ │ │ ├── StructDefinition.java │ │ │ │ ├── VariantDeclaration.java │ │ │ │ └── VariantDefinition.java │ │ │ └── trace │ │ │ ├── CTFIOException.java │ │ │ ├── CTFResponse.java │ │ │ ├── CTFStreamInput.java │ │ │ ├── CTFStreamInputReader.java │ │ │ ├── CTFStreamOutputWriter.java │ │ │ ├── CTFStreamPacketOutputWriter.java │ │ │ ├── CTFTrace.java │ │ │ ├── CTFTraceReader.java │ │ │ ├── CTFTraceWriter.java │ │ │ ├── ICTFPacketDescriptor.java │ │ │ ├── ICTFStream.java │ │ │ ├── IPacketReader.java │ │ │ └── Metadata.java │ │ └── internal │ │ └── ctf │ │ └── core │ │ ├── SafeMappedByteBuffer.java │ │ ├── event │ │ ├── EventDeclaration.java │ │ ├── EventDefinition.java │ │ ├── LostEventDeclaration.java │ │ ├── metadata │ │ │ ├── AbstractScopedCommonTreeParser.java │ │ │ ├── CtfAntlrException.java │ │ │ ├── ICommonTreeParser.java │ │ │ ├── IOStructGen.java │ │ │ ├── Messages.java │ │ │ ├── MetadataStrings.java │ │ │ └── tsdl │ │ │ │ ├── AlignmentParser.java │ │ │ │ ├── ByteOrderParser.java │ │ │ │ ├── ClockParser.java │ │ │ │ ├── PointerListStringParser.java │ │ │ │ ├── SizeParser.java │ │ │ │ ├── TsdlUtils.java │ │ │ │ ├── TypeAliasAliasParser.java │ │ │ │ ├── TypeAliasParser.java │ │ │ │ ├── TypeAliasTargetParser.java │ │ │ │ ├── TypeDeclarationParser.java │ │ │ │ ├── TypeDeclarationStringParser.java │ │ │ │ ├── TypeDeclaratorParser.java │ │ │ │ ├── TypeSpecifierListNameParser.java │ │ │ │ ├── TypeSpecifierListParser.java │ │ │ │ ├── TypeSpecifierListStringParser.java │ │ │ │ ├── TypedefParser.java │ │ │ │ ├── UnaryIntegerParser.java │ │ │ │ ├── UnaryStringParser.java │ │ │ │ ├── enumeration │ │ │ │ ├── EnumBodyParser.java │ │ │ │ ├── EnumContainerParser.java │ │ │ │ ├── EnumParser.java │ │ │ │ └── EnumeratorParser.java │ │ │ │ ├── environment │ │ │ │ └── EnvironmentParser.java │ │ │ │ ├── event │ │ │ │ ├── EventDeclarationParser.java │ │ │ │ ├── EventIDParser.java │ │ │ │ ├── EventNameParser.java │ │ │ │ ├── EventParser.java │ │ │ │ └── EventScopeParser.java │ │ │ │ ├── floatingpoint │ │ │ │ └── FloatDeclarationParser.java │ │ │ │ ├── integer │ │ │ │ ├── BaseParser.java │ │ │ │ ├── ClockMapParser.java │ │ │ │ ├── IntegerDeclarationParser.java │ │ │ │ └── SignedParser.java │ │ │ │ ├── stream │ │ │ │ ├── StreamDeclarationParser.java │ │ │ │ ├── StreamIdParser.java │ │ │ │ ├── StreamParser.java │ │ │ │ └── StreamScopeParser.java │ │ │ │ ├── string │ │ │ │ ├── EncodingParser.java │ │ │ │ └── StringDeclarationParser.java │ │ │ │ ├── struct │ │ │ │ ├── StructBodyParser.java │ │ │ │ ├── StructDeclarationParser.java │ │ │ │ └── StructParser.java │ │ │ │ ├── trace │ │ │ │ ├── TraceDeclarationParser.java │ │ │ │ ├── TraceScopeParser.java │ │ │ │ ├── UUIDParser.java │ │ │ │ └── VersionNumberParser.java │ │ │ │ └── variant │ │ │ │ ├── VariantBodyParser.java │ │ │ │ ├── VariantDeclarationParser.java │ │ │ │ └── VariantParser.java │ │ └── types │ │ │ └── composite │ │ │ ├── EventHeaderCompactDeclaration.java │ │ │ ├── EventHeaderDefinition.java │ │ │ └── EventHeaderLargeDeclaration.java │ │ └── trace │ │ ├── CTFPacketReader.java │ │ ├── CTFStream.java │ │ ├── NullPacketReader.java │ │ ├── StreamInputPacketIndex.java │ │ ├── StreamInputPacketIndexEntry.java │ │ ├── StreamInputReaderTimestampComparator.java │ │ └── Utils.java │ └── test │ └── java │ └── org │ └── eclipse │ └── tracecompass │ └── ctf │ ├── core │ └── tests │ │ ├── ctftestsuite │ │ └── CtfTestSuiteTest.java │ │ ├── event │ │ ├── CTFEventDefinitionTest.java │ │ └── CTFEventFieldTest.java │ │ ├── io │ │ ├── BitBufferIntTest.java │ │ ├── BitBufferTest.java │ │ └── Util.java │ │ ├── scope │ │ └── LexicalScopeTest.java │ │ ├── shared │ │ ├── CtfTestTraceExtractor.java │ │ └── LttngTraceGenerator.java │ │ ├── trace │ │ ├── CTFPacketReaderTest.java │ │ ├── CTFStreamInputPacketIndexEntryTest.java │ │ ├── CTFStreamInputPacketIndexTest.java │ │ ├── CTFStreamInputReaderTest.java │ │ ├── CTFStreamInputReaderTimestampComparatorTest.java │ │ ├── CTFStreamInputTest.java │ │ ├── CTFStreamTest.java │ │ ├── CTFTraceGrowingStreamTest.java │ │ ├── CTFTraceGrowingTest.java │ │ ├── CTFTraceReaderTest.java │ │ ├── CTFTraceTest.java │ │ ├── CTFTraceWriterTest.java │ │ ├── IOstructgenTest.java │ │ ├── MetadataPrevalidationTests.java │ │ ├── MetadataTest.java │ │ ├── TraceReadAllTracesTest.java │ │ └── UtilsTest.java │ │ └── types │ │ ├── ArrayDeclaration2Test.java │ │ ├── ArrayDefinition2Test.java │ │ ├── DefinitionTest.java │ │ ├── EnumDeclarationTest.java │ │ ├── EnumDefinitionTest.java │ │ ├── EventDeclarationTest.java │ │ ├── EventHeaderDeclarationTest.java │ │ ├── FloatDeclarationTest.java │ │ ├── FloatDefinitionTest.java │ │ ├── IntegerDeclarationTest.java │ │ ├── IntegerDefinitionTest.java │ │ ├── IntegerEndiannessTest.java │ │ ├── SequenceDeclaration2Test.java │ │ ├── SequenceDefinition2Test.java │ │ ├── StringDeclarationTest.java │ │ ├── StringDefinitionTest.java │ │ ├── StructDeclarationTest.java │ │ ├── StructDefinitionTest.java │ │ ├── VariantDeclarationTest.java │ │ └── VariantDefinitionTest.java │ └── parser │ └── tests │ ├── CtfLexerTest.java │ └── CtfParserTest.java ├── jabberwockd ├── kotlin-only-sources.properties ├── mixed-java-kotlin-sources.properties ├── pom.xml └── src │ ├── main │ └── kotlin │ │ └── com │ │ └── efficios │ │ └── jabberwocky │ │ └── jabberwockd │ │ ├── HttpConstants.kt │ │ ├── JabberwockDaemon.kt │ │ ├── JabberwockLocalPaths.kt │ │ └── handlers │ │ ├── DebugHandler.kt │ │ └── TracesHandler.kt │ └── test │ └── kotlin │ └── com │ └── efficios │ └── jabberwocky │ └── jabberwockd │ └── TraceUploadTest.kt ├── jabberwocky-core-test-base ├── kotlin-only-sources.properties ├── pom.xml └── src │ ├── main │ └── kotlin │ │ └── com │ │ └── efficios │ │ └── jabberwocky │ │ ├── project │ │ └── TraceProjectIteratorSingleTraceTestBase.kt │ │ ├── tests │ │ └── JavaFXTestBase.kt │ │ └── trace │ │ └── TraceIteratorTestBase.kt │ └── test │ └── kotlin │ └── com │ └── efficios │ └── jabberwocky │ ├── analysis │ └── eventstats │ │ ├── EventStatsAnalysisTest.kt │ │ └── EventStatsXYChartProviderTest.kt │ ├── project │ └── TraceProjectTest.kt │ ├── trace │ ├── TraceIteratorPositionTest.kt │ ├── TraceIteratorTest.kt │ ├── TraceStubs.kt │ └── TraceTest.kt │ └── views │ └── xychart │ └── control │ └── XYChartControlTest.kt ├── jabberwocky-core ├── mixed-java-kotlin-sources.properties ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── efficios │ │ │ └── jabberwocky │ │ │ └── views │ │ │ └── timegraph │ │ │ ├── model │ │ │ ├── provider │ │ │ │ ├── ITimeGraphModelProviderFactory.java │ │ │ │ ├── TimeGraphModelProviderManager.java │ │ │ │ ├── drawnevents │ │ │ │ │ └── TimeGraphDrawnEventProviderManager.java │ │ │ │ └── statesystem │ │ │ │ │ ├── StateSystemModelArrowProvider.java │ │ │ │ │ ├── StateSystemModelProvider.java │ │ │ │ │ └── StateSystemTimeGraphTreeElement.java │ │ │ └── render │ │ │ │ ├── LineThickness.java │ │ │ │ ├── StateDefinition.java │ │ │ │ ├── TimeGraphEvent.java │ │ │ │ ├── arrows │ │ │ │ ├── TimeGraphArrow.java │ │ │ │ ├── TimeGraphArrowRender.java │ │ │ │ └── TimeGraphArrowSeries.java │ │ │ │ ├── drawnevents │ │ │ │ ├── TimeGraphDrawnEvent.java │ │ │ │ ├── TimeGraphDrawnEventRender.java │ │ │ │ └── TimeGraphDrawnEventSeries.java │ │ │ │ ├── states │ │ │ │ ├── BasicTimeGraphStateInterval.java │ │ │ │ ├── MultiStateInterval.java │ │ │ │ └── TimeGraphStateInterval.java │ │ │ │ └── tree │ │ │ │ ├── TimeGraphTreeElement.java │ │ │ │ └── TimeGraphTreeRender.java │ │ │ └── view │ │ │ ├── TimeGraphModelView.java │ │ │ └── json │ │ │ ├── RenderToJson.java │ │ │ └── TimeGraphJsonOutput.java │ └── kotlin │ │ └── com │ │ └── efficios │ │ └── jabberwocky │ │ ├── analysis │ │ ├── IAnalysis.kt │ │ ├── eventstats │ │ │ ├── EventStatsAnalysis.kt │ │ │ ├── EventStatsTotalsSeriesProvider.kt │ │ │ └── EventStatsXYChartProvider.kt │ │ └── statesystem │ │ │ └── StateSystemAnalysis.kt │ │ ├── collection │ │ ├── BaseTraceCollectionIterator.kt │ │ ├── TraceCollection.kt │ │ └── TraceCollectionIterator.kt │ │ ├── common │ │ ├── ConfigOption.kt │ │ └── TimeRange.kt │ │ ├── context │ │ └── ViewGroupContext.kt │ │ ├── project │ │ ├── BaseTraceProjectIterator.kt │ │ ├── TraceProject.kt │ │ └── TraceProjectIterator.kt │ │ ├── task │ │ ├── JabberwockyTask.kt │ │ └── JabberwockyTaskManager.kt │ │ ├── trace │ │ ├── Trace.kt │ │ ├── TraceInitializationException.kt │ │ ├── TraceIterator.kt │ │ ├── TraceIteratorPosition.kt │ │ └── event │ │ │ ├── BaseTraceEvent.kt │ │ │ ├── FieldValue.kt │ │ │ ├── TraceEvent.kt │ │ │ └── TraceLostEvent.kt │ │ ├── utils │ │ ├── RewindingIterator.kt │ │ ├── RewindingSortedCompoundIterator.kt │ │ ├── SortedCompoundIterator.kt │ │ └── UsingResources.kt │ │ └── views │ │ ├── common │ │ ├── ColorDefinition.kt │ │ ├── EventSymbolStyle.kt │ │ └── FlatUIColors.kt │ │ ├── timegraph │ │ ├── control │ │ │ └── TimeGraphModelControl.kt │ │ └── model │ │ │ ├── provider │ │ │ ├── ITimeGraphModelProvider.kt │ │ │ ├── TimeGraphModelProvider.kt │ │ │ ├── arrows │ │ │ │ └── TimeGraphModelArrowProvider.kt │ │ │ ├── drawnevents │ │ │ │ └── TimeGraphDrawnEventProvider.kt │ │ │ ├── states │ │ │ │ └── TimeGraphModelStateProvider.kt │ │ │ └── statesystem │ │ │ │ └── StateSystemModelStateProvider.kt │ │ │ └── render │ │ │ └── states │ │ │ └── TimeGraphStateRender.kt │ │ └── xychart │ │ ├── control │ │ └── XYChartControl.kt │ │ ├── model │ │ ├── XYChartResolutionUtils.kt │ │ ├── provider │ │ │ ├── XYChartModelProvider.kt │ │ │ ├── XYChartModelProviderManager.kt │ │ │ ├── XYChartSeriesProvider.kt │ │ │ └── statesystem │ │ │ │ ├── StateSystemXYChartProvider.kt │ │ │ │ └── StateSystemXYChartSeriesProvider.kt │ │ └── render │ │ │ ├── XYChartRender.kt │ │ │ └── XYChartSeries.kt │ │ └── view │ │ ├── XYChartView.kt │ │ └── json │ │ └── XYChartJsonOutput.kt │ └── test │ └── kotlin │ └── com │ └── efficios │ └── jabberwocky │ ├── common │ └── TimeRangeTest.kt │ ├── utils │ ├── RewindingSortedCompoundIteratorTest.kt │ ├── SortedCompoundIteratorTest.kt │ └── SortedCompoundIteratorTestBase.kt │ └── views │ ├── common │ └── ColorDefinitionTest.kt │ └── xychart │ └── model │ └── provider │ ├── XYChartSeriesProviderStub.kt │ └── XYChartSeriesProviderTest.kt ├── jabberwocky-ctf ├── kotlin-only-sources.properties ├── pom.xml └── src │ ├── main │ └── kotlin │ │ └── com │ │ └── efficios │ │ └── jabberwocky │ │ └── ctf │ │ └── trace │ │ ├── CtfTrace.kt │ │ ├── CtfTraceIterator.kt │ │ ├── CtfTraceUtils.kt │ │ └── event │ │ ├── CtfTraceEvent.kt │ │ ├── CtfTraceEventFactory.kt │ │ ├── CtfTraceEventFieldParser.kt │ │ └── CtfTraceLostEvent.kt │ └── test │ └── kotlin │ └── com │ └── efficios │ └── jabberwocky │ └── ctf │ ├── analysis │ └── CtfStateSystemAnalysisTest.kt │ ├── collection │ ├── CtfTraceCollectionTest.kt │ └── CtfTraceProjectTest.kt │ ├── project │ └── CtfTraceProjectIteratorSingleTraceTest.kt │ └── trace │ ├── CtfTestTraceExtractor.kt │ ├── CtfTraceIteratorTest.kt │ ├── CtfTraceTest.kt │ ├── ExtractedCtfTestTrace.kt │ ├── FunkyTraceTest.kt │ └── event │ ├── CtfTmfEventFieldSignExtensionTest.kt │ ├── CtfTmfEventFieldTest.kt │ ├── CtfTmfEventTest.kt │ ├── CtfTmfLostEventsTest.kt │ └── EventContextTest.kt ├── jabberwocky-lttng ├── mixed-java-kotlin-sources.properties ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── efficios │ │ │ └── jabberwocky │ │ │ └── lttng │ │ │ ├── kernel │ │ │ └── views │ │ │ │ └── timegraph │ │ │ │ ├── KernelAnalysisStateDefinitions.java │ │ │ │ ├── Messages.java │ │ │ │ ├── resources │ │ │ │ ├── Messages.java │ │ │ │ ├── ResourcesBaseModelProvider.java │ │ │ │ ├── ResourcesCpuIrqModelProvider.java │ │ │ │ ├── ResourcesIrqModelProvider.java │ │ │ │ ├── ResourcesModelStateProvider.java │ │ │ │ └── elements │ │ │ │ │ ├── Messages.java │ │ │ │ │ ├── ResourcesCpuTreeElement.java │ │ │ │ │ └── ResourcesIrqTreeElement.java │ │ │ │ └── threads │ │ │ │ ├── Messages.java │ │ │ │ ├── ThreadsConfigModes.java │ │ │ │ ├── ThreadsModelArrowProviderCpus.java │ │ │ │ ├── ThreadsModelProvider.java │ │ │ │ ├── ThreadsModelStateProvider.java │ │ │ │ └── ThreadsTreeElement.java │ │ │ └── ust │ │ │ ├── analysis │ │ │ └── debuginfo │ │ │ │ ├── BinaryCallsite.java │ │ │ │ ├── FunctionLocation.java │ │ │ │ ├── UstDebugInfoAnalysis.java │ │ │ │ ├── UstDebugInfoAnalysisDefinitions.java │ │ │ │ ├── UstDebugInfoAnalysisResults.java │ │ │ │ ├── UstDebugInfoAnalysisStateProvider.java │ │ │ │ ├── UstDebugInfoBinaryFile.java │ │ │ │ └── UstDebugInfoLoadedBinaryFile.java │ │ │ └── trace │ │ │ └── layout │ │ │ ├── ILttngUstEventLayout.java │ │ │ ├── LttngUst20EventLayout.java │ │ │ ├── LttngUst27EventLayout.java │ │ │ ├── LttngUst28EventLayout.java │ │ │ └── LttngUst29EventLayout.java │ └── kotlin │ │ └── com │ │ └── efficios │ │ └── jabberwocky │ │ └── lttng │ │ ├── kernel │ │ ├── analysis │ │ │ └── os │ │ │ │ ├── Attributes.kt │ │ │ │ ├── KernelAnalysis.kt │ │ │ │ ├── KernelAnalysisEventDefinitions.kt │ │ │ │ ├── KernelStateAggregationRules.kt │ │ │ │ ├── KernelThreadInfo.kt │ │ │ │ ├── LinuxValues.kt │ │ │ │ ├── StateValues.kt │ │ │ │ └── handlers │ │ │ │ ├── IPIEntryHandler.kt │ │ │ │ ├── IPIExitHandler.kt │ │ │ │ ├── IrqEntryHandler.kt │ │ │ │ ├── IrqExitHandler.kt │ │ │ │ ├── KernelEventHandler.kt │ │ │ │ ├── KernelEventHandlerUtils.kt │ │ │ │ ├── PiSetPrioHandler.kt │ │ │ │ ├── ProcessExitHandler.kt │ │ │ │ ├── ProcessForkHandler.kt │ │ │ │ ├── ProcessFreeHandler.kt │ │ │ │ ├── SchedMigrateTaskHandler.kt │ │ │ │ ├── SchedSwitchHandler.kt │ │ │ │ ├── SchedWakeupHandler.kt │ │ │ │ ├── SoftIrqEntryHandler.kt │ │ │ │ ├── SoftIrqExitHandler.kt │ │ │ │ ├── SoftIrqRaiseHandler.kt │ │ │ │ ├── StateDumpHandler.kt │ │ │ │ ├── SysEntryHandler.kt │ │ │ │ └── SysExitHandler.kt │ │ ├── trace │ │ │ ├── LttngKernelTraceUtils.kt │ │ │ └── layout │ │ │ │ ├── LttngKernel20EventLayout.kt │ │ │ │ ├── LttngKernel26EventLayout.kt │ │ │ │ ├── LttngKernel27EventLayout.kt │ │ │ │ ├── LttngKernel28EventLayout.kt │ │ │ │ ├── LttngKernel29EventLayout.kt │ │ │ │ ├── LttngKernelEventLayout.kt │ │ │ │ └── PerfEventLayout.kt │ │ └── views │ │ │ └── timegraph │ │ │ └── resources │ │ │ └── ResourcesCpuModelProvider.kt │ │ └── ust │ │ ├── analysis │ │ └── debuginfo │ │ │ └── UstDebugInfoAnalysisResultsUtils.kt │ │ └── trace │ │ └── LttngUstTraceUtils.kt │ └── test │ └── kotlin │ └── com │ └── efficios │ └── jabberwocky │ └── lttng │ ├── kernel │ ├── analysis │ │ └── os │ │ │ ├── KernelAnalysisAllTracesTestBase.kt │ │ │ └── KernelAnalysisTest.kt │ ├── trace │ │ └── LttngKernelTraceUtilsTest.kt │ └── views │ │ └── timegraph │ │ └── threads │ │ ├── ThreadsModelBenchmark.kt │ │ └── ThreadsModelProviderTest.kt │ ├── testutils │ ├── CtfTestTraceExtractor.kt │ └── ExtractedCtfTestTrace.kt │ └── ust │ ├── analysis │ └── debuginfo │ │ └── UstDebugInfoAnalysisTest.kt │ └── trace │ └── LttngUstTraceUtilsTest.kt ├── javeltrace ├── kotlin-only-sources.properties ├── pom.xml └── src │ └── main │ └── kotlin │ └── com │ └── efficios │ └── jabberwocky │ └── javeltrace │ ├── Javeltrace.kt │ ├── TimegraphExample.kt │ └── XYChartExample.kt ├── libdelorean ├── LICENSE ├── mixed-java-kotlin-sources.properties ├── pom.xml └── src │ ├── main │ ├── java │ │ └── ca │ │ │ └── polymtl │ │ │ └── dorsal │ │ │ └── libdelorean │ │ │ ├── Attribute.java │ │ │ ├── AttributeTree.java │ │ │ ├── IStateSystemQuarkResolver.java │ │ │ ├── IStateSystemReader.java │ │ │ ├── IStateSystemWriter.java │ │ │ ├── StateSystem.java │ │ │ ├── StateSystemFactory.java │ │ │ ├── StateSystemUtils.java │ │ │ ├── TransientState.java │ │ │ ├── aggregation │ │ │ ├── AttributePriorityAggregationRule.java │ │ │ ├── BitwiseOrAggregationRule.java │ │ │ ├── IStateAggregationRule.java │ │ │ ├── StateAggregationRule.java │ │ │ └── SymbolicLinkRule.java │ │ │ ├── backend │ │ │ ├── InMemoryBackend.java │ │ │ ├── NullBackend.java │ │ │ ├── StateHistoryBackendFactory.java │ │ │ └── historytree │ │ │ │ └── HistoryTree.java │ │ │ ├── exceptions │ │ │ ├── AttributeNotFoundException.java │ │ │ ├── StateSystemDisposedException.java │ │ │ └── TimeRangeException.java │ │ │ └── statedump │ │ │ └── Statedump.java │ └── kotlin │ │ └── ca │ │ └── polymtl │ │ └── dorsal │ │ └── libdelorean │ │ ├── StateSystemUtils2D.kt │ │ ├── backend │ │ ├── IStateHistoryBackend.kt │ │ └── historytree │ │ │ ├── HTInterval.kt │ │ │ ├── HT_IO.kt │ │ │ ├── HistoryTreeBackend.kt │ │ │ └── HistoryTreeNode.kt │ │ ├── interval │ │ └── StateInterval.kt │ │ └── statevalue │ │ └── StateValue.kt │ └── test │ ├── java │ └── ca │ │ └── polymtl │ │ └── dorsal │ │ └── libdelorean │ │ ├── AttributeTreeTest.java │ │ ├── StateSystemPushPopTest.java │ │ ├── StateSystemUtilsTest.java │ │ ├── aggregation │ │ ├── AggregationTestBase.java │ │ ├── AttributePriorityAggregationTest.java │ │ ├── BitwiseOrAggregationTest.java │ │ ├── ChainedAggregationTest.java │ │ └── SymbolicLinkTest.java │ │ ├── backend │ │ ├── HistoryTreeBackendReOpenTest.java │ │ ├── HistoryTreeBackendTest.java │ │ ├── InMemoryBackendTest.java │ │ ├── StateHistoryBackendTestBase.java │ │ └── historytree │ │ │ └── HistoryTreeTest.java │ │ └── statedump │ │ └── StatedumpTest.java │ └── kotlin │ └── ca │ └── polymtl │ └── dorsal │ └── libdelorean │ └── StateSystemUtils2DTest.kt ├── lttng-scope-ui ├── LICENSE ├── mixed-java-kotlin-sources.properties ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── lttng │ │ │ └── scope │ │ │ ├── common │ │ │ ├── format │ │ │ │ ├── DataSizeWithUnitFormat.java │ │ │ │ ├── DataSpeedWithUnitFormat.java │ │ │ │ └── DecimalUnitFormat.java │ │ │ ├── jfx │ │ │ │ ├── JfxTextUtils.java │ │ │ │ └── TimeAxis.java │ │ │ ├── log │ │ │ │ └── TraceCompassLog.java │ │ │ └── process │ │ │ │ ├── Messages.java │ │ │ │ └── ProcessUtils.java │ │ │ ├── lami │ │ │ ├── LamiConfigFileStrings.java │ │ │ ├── LamiConfigUtils.java │ │ │ ├── LamiStrings.java │ │ │ ├── ShellUtils.java │ │ │ ├── aspect │ │ │ │ ├── LamiDurationAspect.java │ │ │ │ ├── LamiEmptyAspect.java │ │ │ │ ├── LamiGenericAspect.java │ │ │ │ ├── LamiIRQNameAspect.java │ │ │ │ ├── LamiIRQNumberAspect.java │ │ │ │ ├── LamiIRQTypeAspect.java │ │ │ │ ├── LamiMixedAspect.java │ │ │ │ ├── LamiProcessNameAspect.java │ │ │ │ ├── LamiProcessPIDAspect.java │ │ │ │ ├── LamiProcessTIDAspect.java │ │ │ │ ├── LamiTableEntryAspect.java │ │ │ │ ├── LamiTimeRangeBeginAspect.java │ │ │ │ ├── LamiTimeRangeDurationAspect.java │ │ │ │ ├── LamiTimeRangeEndAspect.java │ │ │ │ ├── LamiTimestampAspect.java │ │ │ │ └── Messages.java │ │ │ ├── format │ │ │ │ ├── LamiDecimalUnitFormat.java │ │ │ │ ├── LamiLabelFormat.java │ │ │ │ └── LamiTimeStampFormat.java │ │ │ ├── handler │ │ │ │ ├── AddAnalysisDialog.java │ │ │ │ ├── AddAnalysisHandler.java │ │ │ │ ├── DeleteReportHandler.java │ │ │ │ ├── HandlerUtils.java │ │ │ │ ├── Messages.java │ │ │ │ ├── OpenReportHandler.java │ │ │ │ ├── ParameterDialog.java │ │ │ │ ├── RemoveAnalysisHandler.java │ │ │ │ ├── RunAnalysisHandler.java │ │ │ │ └── messages.properties │ │ │ ├── module │ │ │ │ ├── LamiAnalysis.java │ │ │ │ ├── LamiAnalysisFactoryException.java │ │ │ │ ├── LamiAnalysisFactoryFromConfigFile.java │ │ │ │ ├── LamiAnalysisReport.java │ │ │ │ ├── LamiChartModel.java │ │ │ │ ├── LamiResultTable.java │ │ │ │ ├── LamiTableClass.java │ │ │ │ ├── LamiTableEntry.java │ │ │ │ ├── LamiXYSeriesDescription.java │ │ │ │ └── Messages.java │ │ │ ├── types │ │ │ │ ├── LamiBitrate.java │ │ │ │ ├── LamiBoolean.java │ │ │ │ ├── LamiCPU.java │ │ │ │ ├── LamiData.java │ │ │ │ ├── LamiDisk.java │ │ │ │ ├── LamiDiskPartition.java │ │ │ │ ├── LamiDoubleNumber.java │ │ │ │ ├── LamiDuration.java │ │ │ │ ├── LamiEmpty.java │ │ │ │ ├── LamiFileDescriptor.java │ │ │ │ ├── LamiIRQ.java │ │ │ │ ├── LamiLongNumber.java │ │ │ │ ├── LamiNetworkInterface.java │ │ │ │ ├── LamiNumber.java │ │ │ │ ├── LamiPath.java │ │ │ │ ├── LamiProcess.java │ │ │ │ ├── LamiRatio.java │ │ │ │ ├── LamiSize.java │ │ │ │ ├── LamiString.java │ │ │ │ ├── LamiSystemCall.java │ │ │ │ ├── LamiTimeRange.java │ │ │ │ ├── LamiTimestamp.java │ │ │ │ ├── LamiUnknown.java │ │ │ │ ├── LamiVersion.java │ │ │ │ └── Messages.java │ │ │ ├── viewers │ │ │ │ ├── ILamiViewer.java │ │ │ │ ├── LamiBarChartViewer.java │ │ │ │ ├── LamiGraphRange.java │ │ │ │ ├── LamiScatterViewer.java │ │ │ │ ├── LamiTableContentProvider.java │ │ │ │ ├── LamiTableViewer.java │ │ │ │ ├── LamiXYChartViewer.java │ │ │ │ ├── Messages.java │ │ │ │ └── messages.properties │ │ │ └── views │ │ │ │ ├── LamiAxisCheckBoxOption.java │ │ │ │ ├── LamiReportView.java │ │ │ │ ├── LamiReportViewFactory.java │ │ │ │ ├── LamiReportViewTabPage.java │ │ │ │ ├── LamiSeriesDialog.java │ │ │ │ ├── LamiViewerControl.java │ │ │ │ ├── Messages.java │ │ │ │ └── messages.properties │ │ │ └── views │ │ │ ├── context │ │ │ └── ViewGroupContextManager.java │ │ │ └── timeline │ │ │ └── widgets │ │ │ └── timegraph │ │ │ ├── LoadingOverlay.java │ │ │ ├── Messages.java │ │ │ ├── StateRectangle.java │ │ │ ├── TimeGraphWidget.java │ │ │ ├── TimeGraphWidgetTreeArea.java │ │ │ ├── VerticalPosition.java │ │ │ ├── layer │ │ │ ├── TimeGraphArrowLayer.java │ │ │ ├── TimeGraphBackgroundLayer.java │ │ │ ├── TimeGraphLayer.java │ │ │ ├── TimeGraphSelectionLayer.java │ │ │ ├── TimeGraphStateLayer.java │ │ │ └── drawnevents │ │ │ │ └── TimeGraphDrawnEventLayer.java │ │ │ └── toolbar │ │ │ ├── ArrowSeriesMenuButton.java │ │ │ ├── FilterModeMenuButton.java │ │ │ ├── Messages.java │ │ │ ├── SortingModeMenuButton.java │ │ │ ├── ViewerToolBar.java │ │ │ ├── ZoomInButton.java │ │ │ ├── ZoomOutButton.java │ │ │ ├── ZoomToFullRangeButton.java │ │ │ ├── ZoomToSelectionButton.java │ │ │ ├── modelconfig │ │ │ ├── Messages.java │ │ │ ├── ModelConfigButton.java │ │ │ └── ModelConfigDialog.java │ │ │ └── nav │ │ │ ├── Messages.java │ │ │ ├── NavUtils.java │ │ │ ├── NavigationButtons.java │ │ │ ├── NavigationMode.java │ │ │ ├── NavigationModeFollowArrows.java │ │ │ ├── NavigationModeFollowBookmarks.java │ │ │ ├── NavigationModeFollowEvents.java │ │ │ └── NavigationModeFollowStateChanges.java │ ├── kotlin │ │ └── org │ │ │ └── lttng │ │ │ └── scope │ │ │ ├── ScopePaths.kt │ │ │ ├── application │ │ │ ├── ScopeApplication.kt │ │ │ ├── ScopeKeyBindings.kt │ │ │ ├── ScopeMainWindow.kt │ │ │ ├── ScopeMenuBar.kt │ │ │ ├── ScopeOptions.kt │ │ │ ├── ScopeWindowManager.kt │ │ │ ├── actions │ │ │ │ ├── AddTraceAction.kt │ │ │ │ ├── ProjectSetupActions.kt │ │ │ │ └── ProjectSetupDialog.kt │ │ │ └── task │ │ │ │ ├── ScopeStatusBar.kt │ │ │ │ └── ScopeTaskProgressView.kt │ │ │ ├── common │ │ │ ├── ChangeListenerHandler.kt │ │ │ ├── LatestTaskExecutor.kt │ │ │ ├── MathUtils.kt │ │ │ ├── NestingBoolean.kt │ │ │ ├── TimestampFormat.kt │ │ │ └── jfx │ │ │ │ ├── ActionButton.kt │ │ │ │ ├── Arrow.kt │ │ │ │ ├── CountingGridPane.kt │ │ │ │ ├── JfxColorFactory.kt │ │ │ │ ├── JfxImageFactory.kt │ │ │ │ ├── JfxUtils.kt │ │ │ │ ├── Logo.kt │ │ │ │ └── ScopeMenuItem.kt │ │ │ ├── project │ │ │ ├── ProjectArea.kt │ │ │ ├── ProjectManager.kt │ │ │ ├── ProjectState.kt │ │ │ ├── filter │ │ │ │ ├── CreateEventFilterDialog.kt │ │ │ │ ├── EventFilterDefinition.kt │ │ │ │ └── Symbols.kt │ │ │ └── tree │ │ │ │ ├── BookmarksTreeItem.kt │ │ │ │ ├── FiltersTreeItem.kt │ │ │ │ ├── ProjectTree.kt │ │ │ │ ├── ProjectTreeItem.kt │ │ │ │ └── TracesTreeItem.kt │ │ │ └── views │ │ │ ├── events │ │ │ ├── EventTable.kt │ │ │ ├── EventTableControl.kt │ │ │ └── EventTableScrollToolBar.kt │ │ │ ├── timecontrol │ │ │ ├── TimeControl.kt │ │ │ └── TimeRangeTextFields.kt │ │ │ └── timeline │ │ │ ├── DebugOptions.kt │ │ │ ├── NavigationAreaWidget.kt │ │ │ ├── TimelineManager.kt │ │ │ ├── TimelineView.kt │ │ │ ├── TimelineWidget.kt │ │ │ └── widgets │ │ │ ├── timegraph │ │ │ ├── PeriodicRedrawTask.kt │ │ │ ├── layer │ │ │ │ └── drawnevents │ │ │ │ │ ├── DrawnEventFilterListener.kt │ │ │ │ │ └── PredicateDrawnEventProvider.kt │ │ │ └── toolbar │ │ │ │ └── debugopts │ │ │ │ ├── DebugOptionsButton.kt │ │ │ │ ├── DebugOptionsDialog.kt │ │ │ │ └── Messages.kt │ │ │ └── xychart │ │ │ ├── XYChartEventCountFilterListener.kt │ │ │ ├── XYChartFullRangeWidget.kt │ │ │ ├── XYChartVisibleRangeWidget.kt │ │ │ ├── XYChartWidget.kt │ │ │ └── layer │ │ │ ├── XYChartDragHandlers.kt │ │ │ ├── XYChartScrollHandlers.kt │ │ │ └── XYChartSelectionLayer.kt │ └── resources │ │ ├── appicons │ │ ├── generate-icons.sh │ │ ├── icns │ │ │ └── scope_icon.icns │ │ ├── ico │ │ │ └── scope_icon.ico │ │ ├── png │ │ │ ├── scope_icon_128x128.png │ │ │ ├── scope_icon_16x16.png │ │ │ ├── scope_icon_256x256.png │ │ │ ├── scope_icon_32x32.png │ │ │ ├── scope_icon_48x48.png │ │ │ └── scope_icon_64x64.png │ │ ├── scope_about.png │ │ ├── splash.bmp │ │ └── xpm │ │ │ └── scope_icon_256x256.xpm │ │ ├── icons │ │ ├── attribution │ │ ├── table │ │ │ ├── bottom.png │ │ │ ├── pagedown.png │ │ │ ├── pageup.png │ │ │ └── top.png │ │ ├── toolbar │ │ │ ├── config.gif │ │ │ ├── help.gif │ │ │ ├── legend.gif │ │ │ ├── nav_arrow_back.gif │ │ │ ├── nav_arrow_fwd.gif │ │ │ ├── nav_bookmark_back.gif │ │ │ ├── nav_bookmark_fwd.gif │ │ │ ├── nav_event_back.gif │ │ │ ├── nav_event_fwd.gif │ │ │ ├── nav_statechange_back.gif │ │ │ ├── nav_statechange_fwd.gif │ │ │ ├── zoom_full.gif │ │ │ ├── zoom_in.gif │ │ │ └── zoom_out.gif │ │ └── tracetype │ │ │ ├── lttng-ust.png │ │ │ └── lttng.png │ │ └── lttng-analyses-configs │ │ ├── cputop.properties │ │ ├── index.properties │ │ ├── iolatencyfreq.properties │ │ ├── iolatencystats.properties │ │ ├── iolatencytop.properties │ │ ├── iolog.properties │ │ ├── iousagetop.properties │ │ ├── irqfreq.properties │ │ ├── irqlog.properties │ │ ├── irqstats.properties │ │ ├── memtop.properties │ │ ├── schedfreq.properties │ │ ├── schedlog.properties │ │ ├── schedstats.properties │ │ ├── schedtop.properties │ │ └── syscallstats.properties │ └── test │ ├── java │ └── org │ │ └── lttng │ │ └── scope │ │ ├── common │ │ └── format │ │ │ ├── DataSizeFormatTest.java │ │ │ ├── DataSpeedFormatTest.java │ │ │ ├── DecimalUnitFormatErrorTest.java │ │ │ ├── DecimalUnitFormatFactorTest.java │ │ │ └── DecimalUnitFormatTest.java │ │ ├── lami │ │ ├── LamiAnalysisStub.java │ │ └── LamiJsonParserTest.java │ │ └── views │ │ └── timeline │ │ └── widgets │ │ └── timegraph │ │ ├── StubDrawnEventProviders.java │ │ ├── StubModelArrowProvider1.java │ │ ├── StubModelArrowProvider2.java │ │ ├── StubModelProvider.java │ │ ├── StubModelStateProvider.java │ │ ├── StubView.java │ │ ├── TimeGraphWidgetArrowsTest.java │ │ ├── TimeGraphWidgetDrawnEventsTest.java │ │ ├── TimeGraphWidgetInitTest.java │ │ ├── TimeGraphWidgetSeekTest.java │ │ ├── TimeGraphWidgetStatesTest.java │ │ ├── TimeGraphWidgetStaticTest.java │ │ ├── TimeGraphWidgetTestBase.java │ │ └── TimeGraphWidgetZoomTest.java │ └── kotlin │ └── org │ └── lttng │ └── scope │ ├── common │ ├── MathUtilsTest.kt │ ├── NestingBooleanTest.kt │ ├── TimestampFormatTestBase.kt │ ├── TimestampFormat_DHMSTZ_Local_Test.kt │ ├── TimestampFormat_DHMSTZ_UTC_Test.kt │ ├── TimestampFormat_DHMS_Local_Test.kt │ ├── TimestampFormat_DHMS_UTC_Test.kt │ ├── TimestampFormat_HMS_Local_Test.kt │ ├── TimestampFormat_HMS_UTC_Test.kt │ ├── TimestampFormat_SecNano_Test.kt │ ├── jfx │ │ └── JfxTextUtilsTest.kt │ └── tests │ │ ├── JfxTestUtils.kt │ │ ├── StubProject.kt │ │ └── StubTrace.kt │ └── views │ └── timecontrol │ ├── TimeControlTest.kt │ ├── TimeRangeTextFieldsFormattingTest.kt │ ├── TimeRangeTextFieldsMinimumTest.kt │ └── TimeRangeTextFieldsTest.kt ├── pom.xml └── ttt ├── LICENSE ├── README.md ├── java-only-sources.properties ├── pom.xml └── src ├── main ├── java │ └── org │ │ └── lttng │ │ └── scope │ │ └── ttt │ │ └── ctf │ │ └── CtfTestTrace.java ├── python │ ├── debuginfo_synth_buildid_debuglink.py │ ├── debuginfo_synth_exec.py │ ├── debuginfo_synth_two_processes.py │ └── debuginfo_trace_writer.py └── resources │ ├── bug446190 │ ├── channel0_0 │ ├── channel0_1 │ ├── channel0_2 │ ├── channel0_3 │ ├── index │ │ ├── channel0_0.idx │ │ ├── channel0_1.idx │ │ ├── channel0_2.idx │ │ └── channel0_3.idx │ └── metadata │ ├── context-switches │ ├── context-switches-kernel │ │ ├── channel-context-switches_0 │ │ └── metadata │ └── context-switches-ust │ │ ├── channel0_0 │ │ └── metadata │ ├── ctfwriter_JF8nq3 │ ├── custom_event_header_stream_0 │ ├── empty_stream_0 │ ├── event_before_stream_test_0 │ ├── metadata │ └── test_stream_0 │ ├── cyg-profile │ ├── cyg-profile-mapping.txt │ ├── glxgears-cyg-profile-fast │ │ ├── channel0_0 │ │ ├── channel0_1 │ │ ├── channel0_2 │ │ ├── channel0_3 │ │ └── metadata │ └── glxgears-cyg-profile │ │ ├── channel0_0 │ │ ├── channel0_1 │ │ ├── channel0_2 │ │ ├── channel0_3 │ │ └── metadata │ ├── debuginfo-synth-buildid-debuglink │ ├── metadata │ └── test_stream_0 │ ├── debuginfo-synth-exec │ ├── metadata │ └── test_stream_0 │ ├── debuginfo-synth-two-processes │ ├── metadata │ └── test_stream_0 │ ├── debuginfo-test-app2 │ ├── channel0_0 │ ├── channel0_1 │ ├── channel0_2 │ ├── channel0_3 │ ├── index │ │ ├── channel0_0.idx │ │ ├── channel0_1.idx │ │ ├── channel0_2.idx │ │ └── channel0_3.idx │ └── metadata │ ├── debuginfo-test-app3 │ ├── channel0_0 │ ├── channel0_1 │ ├── channel0_2 │ ├── channel0_3 │ ├── channel0_4 │ ├── channel0_5 │ ├── channel0_6 │ ├── channel0_7 │ ├── index │ │ ├── channel0_0.idx │ │ ├── channel0_1.idx │ │ ├── channel0_2.idx │ │ ├── channel0_3.idx │ │ ├── channel0_4.idx │ │ ├── channel0_5.idx │ │ ├── channel0_6.idx │ │ └── channel0_7.idx │ └── metadata │ ├── debuginfo-test-app4 │ ├── channel0_0 │ ├── channel0_1 │ ├── channel0_2 │ ├── channel0_3 │ ├── index │ │ ├── channel0_0.idx │ │ ├── channel0_1.idx │ │ ├── channel0_2.idx │ │ └── channel0_3.idx │ └── metadata │ ├── flipping-endianness │ ├── channel-context-switches_0 │ └── metadata │ ├── funky_trace │ ├── metadata │ └── test_stream_0 │ ├── hello-lost │ ├── channel1_0 │ ├── channel1_1 │ ├── channel1_2 │ ├── channel1_3 │ └── metadata │ ├── kernel │ ├── channel0_0 │ ├── channel0_1 │ └── metadata │ ├── kernel_vm │ ├── channel0_0 │ └── metadata │ ├── many-threads │ ├── channel0_0 │ ├── channel0_1 │ ├── channel0_2 │ ├── channel0_3 │ ├── channel0_4 │ ├── channel0_5 │ ├── channel0_6 │ ├── channel0_7 │ ├── index │ │ ├── channel0_0.idx │ │ ├── channel0_1.idx │ │ ├── channel0_2.idx │ │ ├── channel0_3.idx │ │ ├── channel0_4.idx │ │ ├── channel0_5.idx │ │ ├── channel0_6.idx │ │ └── channel0_7.idx │ └── metadata │ ├── memory │ ├── channel0_0 │ ├── channel0_1 │ ├── channel0_2 │ ├── channel0_3 │ └── metadata │ ├── one-event │ ├── index │ │ ├── lttng_jul_channel_0.idx │ │ ├── lttng_jul_channel_1.idx │ │ ├── lttng_jul_channel_2.idx │ │ └── lttng_jul_channel_3.idx │ ├── lttng_jul_channel_0 │ ├── lttng_jul_channel_1 │ ├── lttng_jul_channel_2 │ ├── lttng_jul_channel_3 │ └── metadata │ ├── perf-taskset2 │ ├── metadata │ └── perf_stream_0 │ ├── synctraces │ ├── scp_dest │ │ ├── channel0_0 │ │ └── metadata │ └── scp_src │ │ ├── channel0_0 │ │ └── metadata │ ├── trace2 │ ├── channel0_0 │ ├── channel0_1 │ └── metadata │ └── uneven-streams │ ├── channel0_0 │ ├── channel0_1 │ ├── channel0_2 │ ├── channel0_3 │ ├── index │ ├── channel0_0.idx │ ├── channel0_1.idx │ ├── channel0_2.idx │ └── channel0_3.idx │ └── metadata └── test └── java └── org └── lttng └── scope └── ttt └── ctf └── CtfTestTraceTest.java /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | target/ 3 | dependency-reduced-pom.xml 4 | README.html 5 | README.dev.html 6 | 7 | # IDE stuff 8 | .classpath 9 | .project 10 | .settings/ 11 | 12 | .idea/ 13 | *.iml 14 | -------------------------------------------------------------------------------- /.m2/settings.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | efficios-releases-repo 6 | ${env.MVN_REPO_USER} 7 | ${env.MVN_REPO_PASS} 8 | 9 | 10 | efficios-snapshots-repo 11 | ${env.MVN_REPO_USER} 12 | ${env.MVN_REPO_PASS} 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /ctfreader/java-only-sources.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ctfreader/java-only-sources.properties -------------------------------------------------------------------------------- /ctfreader/src/main/java/org/eclipse/tracecompass/ctf/core/event/scope/FieldsScope.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2014 Ericsson 3 | * 4 | * All rights reserved. This program and the accompanying materials are made 5 | * available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | * 9 | * Contributors: 10 | * Matthew Khouzam - Initial API and implementation 11 | *******************************************************************************/ 12 | 13 | package org.eclipse.tracecompass.ctf.core.event.scope; 14 | 15 | import org.jetbrains.annotations.Nullable; 16 | 17 | /** 18 | * A lttng specific speedup node field scope of a lexical scope 19 | * 20 | * @author Matthew Khouzam 21 | */ 22 | public final class FieldsScope extends LexicalScope { 23 | 24 | /** 25 | * The scope constructor 26 | * 27 | * @param parent 28 | * The parent node, can be null, but shouldn't 29 | * @param name 30 | * the name of the field 31 | */ 32 | FieldsScope(ILexicalScope parent, String name) { 33 | super(parent, name); 34 | } 35 | 36 | @Override 37 | public @Nullable ILexicalScope getChild(String name) { 38 | if (name.equals(FIELDS_RET.getName())) { 39 | return FIELDS_RET; 40 | } 41 | if (name.equals(FIELDS_TID.getName())) { 42 | return FIELDS_TID; 43 | } 44 | return super.getChild(name); 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /ctfreader/src/main/java/org/eclipse/tracecompass/ctf/core/event/scope/IDefinitionScope.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2011, 2014 Ericsson, Ecole Polytechnique de Montreal and others 3 | * 4 | * All rights reserved. This program and the accompanying materials are made 5 | * available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | * 9 | * Contributors: Matthew Khouzam - Initial API and implementation 10 | * Contributors: Simon Marchi - Initial API and implementation 11 | *******************************************************************************/ 12 | 13 | package org.eclipse.tracecompass.ctf.core.event.scope; 14 | 15 | import org.eclipse.tracecompass.ctf.core.event.types.IDefinition; 16 | 17 | /** 18 | * The scope of a CTF definition. Used for compound types. 19 | * 20 | * @version 1.0 21 | * @author Matthew Khouzam 22 | * @author Simon Marchi 23 | */ 24 | public interface IDefinitionScope { 25 | 26 | /** 27 | * Gets the path in a C style for the scope. 28 | * 29 | * @return the path 30 | * @since 1.0 31 | */ 32 | ILexicalScope getScopePath(); 33 | 34 | /** 35 | * Looks up in this definition scope. 36 | * 37 | * @param lookupPath 38 | * The path to look up 39 | * @return The Definition that was read 40 | * @since 1.0 41 | */ 42 | IDefinition lookupDefinition(String lookupPath); 43 | } 44 | -------------------------------------------------------------------------------- /ctfreader/src/main/java/org/eclipse/tracecompass/ctf/core/event/scope/PacketHeaderScope.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2014 Ericsson 3 | * 4 | * All rights reserved. This program and the accompanying materials are made 5 | * available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | * 9 | * Contributors: 10 | * Matthew Khouzam - Initial API and implementation 11 | *******************************************************************************/ 12 | 13 | package org.eclipse.tracecompass.ctf.core.event.scope; 14 | 15 | /** 16 | * A lttng specific speedup node (the packet header with magic, uuid and stream 17 | * id ) of a lexical scope the sole reason to have this is to accelerate tostring() 18 | * 19 | * @author Matthew Khouzam 20 | */ 21 | public class PacketHeaderScope extends LexicalScope { 22 | 23 | /** 24 | * Constructor 25 | */ 26 | public PacketHeaderScope() { 27 | super(PACKET, "header"); //$NON-NLS-1$ 28 | } 29 | 30 | @Override 31 | public String getPath() { 32 | return "packet.header"; //$NON-NLS-1$ 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /ctfreader/src/main/java/org/eclipse/tracecompass/ctf/core/event/types/Encoding.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2011-2014 Ericsson, Ecole Polytechnique de Montreal and others 3 | * 4 | * All rights reserved. This program and the accompanying materials are made 5 | * available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | * 9 | * Contributors: Matthew Khouzam - Initial API and implementation 10 | * Contributors: Simon Marchi - Initial API and implementation 11 | *******************************************************************************/ 12 | 13 | package org.eclipse.tracecompass.ctf.core.event.types; 14 | 15 | /** 16 | * CTF encoding types 17 | * 18 | * @version 1.0 19 | * @author Matthew Khouzam 20 | * @author Simon Marchi 21 | */ 22 | public enum Encoding { 23 | /** UTF-8 encoding */ 24 | UTF8, 25 | /** Ascii encoding */ 26 | ASCII, 27 | /** No encoding, maybe not even text */ 28 | NONE 29 | } 30 | -------------------------------------------------------------------------------- /ctfreader/src/main/java/org/eclipse/tracecompass/ctf/core/event/types/ICompositeDefinition.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2014 Ericsson 3 | * 4 | * All rights reserved. This program and the accompanying materials are made 5 | * available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | * 9 | * Contributors: 10 | * Matthew Khouzam - Initial API and implementation 11 | *******************************************************************************/ 12 | 13 | package org.eclipse.tracecompass.ctf.core.event.types; 14 | 15 | import java.util.List; 16 | 17 | /** 18 | * Interface for data definitions containing heterogenous definitions 19 | * (subfields) 20 | * 21 | * @author Matthew Khouzam 22 | */ 23 | public interface ICompositeDefinition extends IDefinition { 24 | 25 | /** 26 | * Gets the definition of the field 27 | * 28 | * @param fieldName 29 | * the fieldname 30 | * @return The definitions of all the fields 31 | */ 32 | Definition getDefinition(String fieldName); 33 | 34 | /** 35 | * Gets an array of the field names 36 | * 37 | * @return the field names array 38 | */ 39 | List getFieldNames(); 40 | 41 | } 42 | -------------------------------------------------------------------------------- /ctfreader/src/main/java/org/eclipse/tracecompass/ctf/core/event/types/IDefinition.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2014 Ericsson 3 | * 4 | * All rights reserved. This program and the accompanying materials are made 5 | * available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | * 9 | * Contributors: 10 | * Matthew Khouzam - Initial API and implementation 11 | *******************************************************************************/ 12 | 13 | package org.eclipse.tracecompass.ctf.core.event.types; 14 | 15 | import org.eclipse.tracecompass.ctf.core.event.scope.ILexicalScope; 16 | 17 | /** 18 | * Interface for data definitions. A definition is when a value is given to a 19 | * declaration 20 | * 21 | * @author Matthew Khouzam 22 | */ 23 | public interface IDefinition { 24 | 25 | /** 26 | * Get the complete path of this field. 27 | * 28 | * @return The path 29 | * @since 1.0 30 | */ 31 | ILexicalScope getScopePath(); 32 | 33 | /** 34 | * Get the declaration of this definition 35 | * 36 | * @return the declaration of a datatype 37 | */ 38 | IDeclaration getDeclaration(); 39 | 40 | } -------------------------------------------------------------------------------- /ctfreader/src/main/java/org/eclipse/tracecompass/ctf/core/event/types/IEventHeaderDeclaration.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2014 Ericsson 3 | * 4 | * All rights reserved. This program and the accompanying materials are made 5 | * available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | * 9 | * Contributors: 10 | * Matthew Khouzam - Initial API and implementation 11 | *******************************************************************************/ 12 | 13 | package org.eclipse.tracecompass.ctf.core.event.types; 14 | 15 | /** 16 | * Event header declaration abstract class 17 | * 18 | * @author Matthew Khouzam 19 | */ 20 | public interface IEventHeaderDeclaration extends IDeclaration { 21 | /** 22 | * The id of an event 23 | */ 24 | String ID = "id"; //$NON-NLS-1$ 25 | /** 26 | * The name of a timestamp field 27 | */ 28 | String TIMESTAMP = "timestamp"; //$NON-NLS-1$ 29 | /** 30 | * Extended header 31 | */ 32 | String EXTENDED = "extended"; //$NON-NLS-1$ 33 | /** 34 | * Compact header (not to be confused with compact vs large) 35 | */ 36 | String COMPACT = "compact"; //$NON-NLS-1$ 37 | /** 38 | * Name of the variant according to the spec 39 | */ 40 | String VARIANT_NAME = "v"; //$NON-NLS-1$ 41 | } 42 | -------------------------------------------------------------------------------- /ctfreader/src/main/java/org/eclipse/tracecompass/ctf/core/event/types/ISimpleDatatypeDeclaration.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2014 Ericsson 3 | * 4 | * All rights reserved. This program and the accompanying materials are made 5 | * available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | * 9 | * Contributors: 10 | * Matthew Khouzam - Initial API and implementation 11 | *******************************************************************************/ 12 | 13 | package org.eclipse.tracecompass.ctf.core.event.types; 14 | 15 | import java.nio.ByteOrder; 16 | 17 | /** 18 | * Common interface for simple CTF data types (which do not contain sub-fields). 19 | * 20 | * @author Matthew Khouzam 21 | */ 22 | public interface ISimpleDatatypeDeclaration { 23 | 24 | /** 25 | * Is the byte order set 26 | * 27 | * @return If the byte order was set 28 | * @since 2.0 29 | */ 30 | public boolean isByteOrderSet(); 31 | 32 | /** 33 | * Get the byte order 34 | * 35 | * @return the byte order, or @link {@link ByteOrder#nativeOrder()} if not 36 | * set 37 | * @since 2.0 38 | */ 39 | public ByteOrder getByteOrder(); 40 | 41 | } 42 | -------------------------------------------------------------------------------- /ctfreader/src/main/java/org/eclipse/tracecompass/ctf/core/trace/CTFResponse.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2014 Ericsson 3 | * 4 | * All rights reserved. This program and the accompanying materials are made 5 | * available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | * 9 | * Contributors: Matthew Khouzam - Initial API and implementation 10 | *******************************************************************************/ 11 | package org.eclipse.tracecompass.ctf.core.trace; 12 | 13 | /** 14 | * A response to a request 15 | * 16 | * @author Matthew Khouzam 17 | */ 18 | public enum CTFResponse { 19 | /** 20 | * The operation was successful 21 | */ 22 | OK, 23 | /** 24 | * The operation cannot be yet completed 25 | */ 26 | WAIT, 27 | /** 28 | * The operation was finished 29 | */ 30 | FINISH, 31 | /** 32 | * The operation failed 33 | */ 34 | ERROR 35 | } 36 | -------------------------------------------------------------------------------- /ctfreader/src/main/java/org/eclipse/tracecompass/ctf/core/trace/CTFStreamPacketOutputWriter.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2015 Ericsson 3 | * 4 | * All rights reserved. This program and the accompanying materials are made 5 | * available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | * 9 | * Contributors: 10 | * Bernd Hufmann - Initial API and implementation 11 | *******************************************************************************/ 12 | package org.eclipse.tracecompass.ctf.core.trace; 13 | 14 | import java.io.IOException; 15 | import java.nio.ByteBuffer; 16 | import java.nio.channels.FileChannel; 17 | 18 | /** 19 | * CTF trace packet writer. 20 | * 21 | * @author Bernd Hufmann 22 | * @since 1.0 23 | */ 24 | public class CTFStreamPacketOutputWriter { 25 | 26 | /** 27 | * Writes a stream packet to the output file channel based on the packet 28 | * descriptor information. 29 | * 30 | * @param byteBuffer 31 | * a byte buffer with packet to write 32 | * @param fc 33 | * a file channel 34 | * @throws IOException 35 | * if a reading or writing error occurs 36 | */ 37 | public void writePacket(ByteBuffer byteBuffer, FileChannel fc) throws IOException { 38 | fc.write(byteBuffer); 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /ctfreader/src/main/java/org/eclipse/tracecompass/internal/ctf/core/event/metadata/Messages.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013, 2015 Ericsson 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * Marc-Andre Laperle - Initial API and implementation 10 | *******************************************************************************/ 11 | 12 | package org.eclipse.tracecompass.internal.ctf.core.event.metadata; 13 | 14 | @SuppressWarnings({ "javadoc", "nls" }) 15 | public final class Messages { 16 | 17 | public static String IOStructGen_UnknownTraceAttributeWarning = "Unknown trace attribute:"; 18 | public static String IOStructGen_UnknownStreamAttributeWarning = "Unknown stream attribute:"; 19 | public static String IOStructGen_UnknownIntegerAttributeWarning = "nknown integer attribute:"; 20 | 21 | private Messages() { 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ctfreader/src/main/java/org/eclipse/tracecompass/internal/ctf/core/event/metadata/tsdl/integer/ClockMapParser.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2015 Ericsson 3 | * 4 | * All rights reserved. This program and the accompanying materials 5 | * are made available under the terms of the Eclipse Public License v1.0 6 | * which accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.eclipse.tracecompass.internal.ctf.core.event.metadata.tsdl.integer; 11 | 12 | import org.antlr.runtime.tree.CommonTree; 13 | import org.eclipse.tracecompass.internal.ctf.core.event.metadata.ICommonTreeParser; 14 | import org.jetbrains.annotations.NotNull; 15 | 16 | /** 17 | * A reference to the clock map in a given integer. 18 | * 19 | * @author Matthew Khouzam 20 | * 21 | */ 22 | public final class ClockMapParser implements ICommonTreeParser { 23 | 24 | private static final @NotNull String EMPTY_STRING = ""; //$NON-NLS-1$ 25 | 26 | /** 27 | * Instance 28 | */ 29 | public static final ClockMapParser INSTANCE = new ClockMapParser(); 30 | 31 | private ClockMapParser() { 32 | } 33 | 34 | @Override 35 | public String parse(CommonTree tree, ICommonTreeParserParameter param) { 36 | String clock = tree.getChild(1).getChild(0).getChild(0).getText(); 37 | return clock == null ? EMPTY_STRING : clock; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /ctfreader/src/test/java/org/eclipse/tracecompass/ctf/core/tests/io/Util.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2014 Ericsson 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * Matthew Khouzam - Initial API and implementation 10 | ******************************************************************************/ 11 | 12 | package org.eclipse.tracecompass.ctf.core.tests.io; 13 | 14 | import org.jetbrains.annotations.NotNull; 15 | 16 | import java.nio.ByteBuffer; 17 | 18 | /** 19 | * Helpers for the tests 20 | * 21 | * @author Matthew Khouzam 22 | */ 23 | public final class Util { 24 | 25 | private Util() { 26 | } 27 | 28 | /** 29 | * Wrapper to make sure the bytebuffer is not null 30 | * 31 | * @param buffer 32 | * a potentially null byte buffer 33 | * @return a non-null byte buffer or an illegal state exception 34 | */ 35 | public static @NotNull ByteBuffer testMemory(ByteBuffer buffer) { 36 | if (buffer == null) { 37 | throw new IllegalStateException("Failed to alloc"); 38 | } 39 | return buffer; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /jabberwockd/kotlin-only-sources.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/jabberwockd/kotlin-only-sources.properties -------------------------------------------------------------------------------- /jabberwockd/mixed-java-kotlin-sources.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/jabberwockd/mixed-java-kotlin-sources.properties -------------------------------------------------------------------------------- /jabberwockd/src/main/kotlin/com/efficios/jabberwocky/jabberwockd/HttpConstants.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.jabberwockd 11 | 12 | object HttpConstants { 13 | 14 | object Methods { 15 | const val GET = "GET" 16 | const val PUT = "PUT" 17 | const val DELETE = "DELETE" 18 | } 19 | 20 | object ReturnCodes { 21 | /** Success */ 22 | const val R_200 = 200 23 | /** Success, resulted in resource creation */ 24 | const val R_201 = 201 25 | 26 | /** Requested resource not found */ 27 | const val R_404 = 404 28 | /** Operation not allowed (i.e. deleting a read-only resource) */ 29 | const val R_405 = 405 30 | } 31 | 32 | } -------------------------------------------------------------------------------- /jabberwockd/src/main/kotlin/com/efficios/jabberwocky/jabberwockd/JabberwockDaemon.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | @file:JvmName("JabberwockDaemon") 11 | 12 | package com.efficios.jabberwocky.jabberwockd; 13 | 14 | import com.efficios.jabberwocky.jabberwockd.handlers.DebugHandler 15 | import com.sun.net.httpserver.HttpServer 16 | import java.net.InetSocketAddress 17 | 18 | const val LISTENING_PORT = 8000 19 | const val BASE_URL = "" 20 | 21 | /** 22 | * Trace analysis server daemon. 23 | * 24 | * @author Alexandre Montplaisir 25 | */ 26 | fun main(args: Array) { 27 | 28 | val server = HttpServer.create(InetSocketAddress(LISTENING_PORT), 0) 29 | server.createContext("/test", DebugHandler()) 30 | server.executor = null; // creates a default executor 31 | server.start(); 32 | 33 | println("Server started, listening on port $LISTENING_PORT") 34 | } 35 | -------------------------------------------------------------------------------- /jabberwocky-core-test-base/kotlin-only-sources.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/jabberwocky-core-test-base/kotlin-only-sources.properties -------------------------------------------------------------------------------- /jabberwocky-core-test-base/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 4.0.0 13 | 14 | 15 | org.lttng.scope 16 | lttng-scope-master 17 | 0.5.0-SNAPSHOT 18 | 19 | 20 | jabberwocky-core-test-base 21 | jar 22 | 23 | Jabberwocky Trace Analysis Library Common Tests Package 24 | 25 | 26 | 27 | org.lttng.scope 28 | jabberwocky-core 29 | 30 | 31 | 32 | org.junit.jupiter 33 | junit-jupiter-api 34 | 35 | compile 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /jabberwocky-core-test-base/src/main/kotlin/com/efficios/jabberwocky/tests/JavaFXTestBase.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.tests 11 | 12 | import javafx.embed.swing.JFXPanel 13 | 14 | /** 15 | * Test-runner that will make sure JavaFX is initialized. Have your test class 16 | * extend this if you get "Toolkit not initialized" errors. 17 | */ 18 | abstract class JavaFXTestBase { 19 | 20 | init { 21 | JFXPanel() 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /jabberwocky-core-test-base/src/test/kotlin/com/efficios/jabberwocky/trace/TraceIteratorTest.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.trace 11 | 12 | class TraceIteratorTest : TraceIteratorTestBase() { 13 | 14 | override val trace = TraceStubs.TraceStub3() 15 | 16 | override val event1 = trace.events[0] 17 | override val event2 = trace.events[1] 18 | override val event3 = trace.events[2] 19 | override val timestampBetween1and2 = 101L 20 | 21 | override val lastEvent = trace.events.last() 22 | override val timestampAfterEnd = 210L 23 | 24 | override val middleEvent = trace.events[25] 25 | override val middleEventPosition = 25 26 | 27 | } 28 | -------------------------------------------------------------------------------- /jabberwocky-core-test-base/src/test/kotlin/com/efficios/jabberwocky/trace/TraceTest.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.trace 11 | 12 | import com.efficios.jabberwocky.trace.event.TraceEvent 13 | import org.junit.jupiter.api.Assertions.assertEquals 14 | import org.junit.jupiter.params.ParameterizedTest 15 | import org.junit.jupiter.params.provider.Arguments 16 | import org.junit.jupiter.params.provider.MethodSource 17 | 18 | class TraceTest { 19 | 20 | companion object { 21 | @JvmStatic 22 | private fun getTestTraces() = listOf( 23 | Arguments.of(TraceStubs.TraceStub1(), 2L, 10L), 24 | Arguments.of(TraceStubs.TraceStub2(), 4L, 8L) 25 | ) 26 | } 27 | 28 | @ParameterizedTest 29 | @MethodSource("getTestTraces") 30 | fun testStartTime(testTrace: Trace, 31 | expectedStart: Long, 32 | expectedEnd: Long) { 33 | assertEquals(expectedStart, testTrace.startTime) 34 | } 35 | 36 | @ParameterizedTest 37 | @MethodSource("getTestTraces") 38 | fun testEndTime(testTrace: Trace, 39 | expectedStart: Long, 40 | expectedEnd: Long) { 41 | assertEquals(expectedEnd, testTrace.endTime) 42 | } 43 | } -------------------------------------------------------------------------------- /jabberwocky-core/mixed-java-kotlin-sources.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/jabberwocky-core/mixed-java-kotlin-sources.properties -------------------------------------------------------------------------------- /jabberwocky-core/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 4.0.0 13 | 14 | 15 | org.lttng.scope 16 | lttng-scope-master 17 | 0.5.0-SNAPSHOT 18 | 19 | 20 | jabberwocky-core 21 | jar 22 | 23 | Jabberwocky Trace Analysis Library 24 | 25 | 26 | 27 | com.google.guava 28 | guava 29 | 30 | 31 | 32 | com.google.code.gson 33 | gson 34 | 35 | 36 | 37 | org.lttng.scope 38 | libdelorean 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /jabberwocky-core/src/main/java/com/efficios/jabberwocky/views/timegraph/model/provider/ITimeGraphModelProviderFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.views.timegraph.model.provider; 11 | 12 | import java.util.function.Supplier; 13 | 14 | /** 15 | * Factory for {@link ITimeGraphModelProvider} objects. 16 | * 17 | * Used to register possible time graphs to the framework using the 18 | * {@link TimeGraphModelProviderManager}. 19 | * 20 | * @author Alexandre Montplaisir 21 | */ 22 | @FunctionalInterface 23 | public interface ITimeGraphModelProviderFactory extends Supplier { 24 | 25 | } 26 | -------------------------------------------------------------------------------- /jabberwocky-core/src/main/java/com/efficios/jabberwocky/views/timegraph/model/render/LineThickness.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.views.timegraph.model.render; 11 | 12 | /** 13 | * Headless definitions of possible values of state interval line thicknesses 14 | */ 15 | public enum LineThickness { 16 | 17 | /** Normal, full thickness */ 18 | NORMAL, 19 | /** 20 | * Small thickness, should be between {@link #NORMAL} and {@link #TINY} and 21 | * distinguishable from those two. 22 | */ 23 | SMALL, 24 | /** 25 | * Tiny line thickness. The line should be as small as possible but still 26 | * have the color distinguishable. 27 | */ 28 | TINY 29 | 30 | } -------------------------------------------------------------------------------- /jabberwocky-core/src/main/java/com/efficios/jabberwocky/views/timegraph/view/json/TimeGraphJsonOutput.java: -------------------------------------------------------------------------------- 1 | package com.efficios.jabberwocky.views.timegraph.view.json; 2 | 3 | import java.util.List; 4 | 5 | import com.efficios.jabberwocky.views.timegraph.control.TimeGraphModelControl; 6 | import com.efficios.jabberwocky.views.timegraph.model.provider.ITimeGraphModelProvider; 7 | import com.efficios.jabberwocky.views.timegraph.model.render.states.TimeGraphStateRender; 8 | import com.efficios.jabberwocky.views.timegraph.model.render.tree.TimeGraphTreeRender; 9 | import com.efficios.jabberwocky.views.timegraph.view.TimeGraphModelView; 10 | 11 | import com.efficios.jabberwocky.common.TimeRange; 12 | 13 | public class TimeGraphJsonOutput extends TimeGraphModelView { 14 | 15 | public TimeGraphJsonOutput(TimeGraphModelControl control) { 16 | super(control); 17 | } 18 | 19 | @Override 20 | public void disposeImpl() { 21 | } 22 | 23 | @Override 24 | public void clear() { 25 | // TODO 26 | } 27 | 28 | @Override 29 | public void seekVisibleRange(TimeRange newVisibleRange) { 30 | /* Generate JSON for the visible area */ 31 | ITimeGraphModelProvider provider = getControl().getRenderProvider(); 32 | 33 | TimeGraphTreeRender treeRender = provider.getTreeRender(); 34 | List stateRenders = provider.getStateProvider().getAllStateRenders(treeRender, 35 | newVisibleRange, 1, null); 36 | 37 | RenderToJson.printRenderTo(stateRenders); 38 | } 39 | 40 | @Override 41 | public void drawSelection(TimeRange selectionRange) { 42 | // TODO NYI 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /jabberwocky-core/src/main/kotlin/com/efficios/jabberwocky/analysis/eventstats/EventStatsXYChartProvider.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.analysis.eventstats 11 | 12 | import ca.polymtl.dorsal.libdelorean.statevalue.IntegerStateValue 13 | import com.efficios.jabberwocky.common.TimeRange 14 | import com.efficios.jabberwocky.views.common.FlatUIColors 15 | import com.efficios.jabberwocky.views.xychart.model.provider.statesystem.StateSystemXYChartProvider 16 | import com.efficios.jabberwocky.views.xychart.model.render.XYChartRender 17 | import com.efficios.jabberwocky.views.xychart.model.render.XYChartSeries 18 | import java.util.concurrent.FutureTask 19 | import javax.management.AttributeNotFoundException 20 | 21 | class EventStatsXYChartProvider: StateSystemXYChartProvider(NAME, EventStatsAnalysis) { 22 | 23 | companion object { 24 | private const val NAME = "Event count" 25 | } 26 | 27 | init { 28 | registerSeries(EventStatsTotalsSeriesProvider(this)) 29 | } 30 | } 31 | 32 | 33 | -------------------------------------------------------------------------------- /jabberwocky-core/src/main/kotlin/com/efficios/jabberwocky/collection/BaseTraceCollectionIterator.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.collection 11 | 12 | import com.efficios.jabberwocky.trace.Trace 13 | import com.efficios.jabberwocky.trace.TraceIterator 14 | import com.efficios.jabberwocky.trace.event.TraceEvent 15 | import com.efficios.jabberwocky.utils.RewindingSortedCompoundIterator 16 | import com.efficios.jabberwocky.utils.SortedCompoundIterator 17 | import java.util.* 18 | 19 | class BaseTraceCollectionIterator (traceCollection: TraceCollection>) : 20 | RewindingSortedCompoundIterator>(traceCollection.traces.map { it.iterator() }, compareBy { event -> event.timestamp }), 21 | TraceCollectionIterator { 22 | 23 | override fun seek(timestamp: Long) { 24 | iterators.forEach { it.seek(timestamp) } 25 | clearCaches() 26 | } 27 | 28 | override fun close() { 29 | iterators.forEach { it.close() } 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /jabberwocky-core/src/main/kotlin/com/efficios/jabberwocky/collection/TraceCollection.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.collection 11 | 12 | import com.efficios.jabberwocky.trace.Trace 13 | import com.efficios.jabberwocky.trace.event.TraceEvent 14 | 15 | class TraceCollection>(val traces: Collection) { 16 | 17 | fun iterator(): TraceCollectionIterator { 18 | return BaseTraceCollectionIterator(this) 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /jabberwocky-core/src/main/kotlin/com/efficios/jabberwocky/collection/TraceCollectionIterator.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.collection 11 | 12 | import com.efficios.jabberwocky.trace.event.TraceEvent 13 | import com.efficios.jabberwocky.utils.RewindingIterator 14 | 15 | interface TraceCollectionIterator : RewindingIterator, AutoCloseable { 16 | 17 | /** Seek this iterator to the given timestamp for all traces. */ 18 | fun seek(timestamp: Long) 19 | 20 | /** Overridden to explicitly not throw any exception. */ 21 | override fun close() 22 | } 23 | -------------------------------------------------------------------------------- /jabberwocky-core/src/main/kotlin/com/efficios/jabberwocky/common/ConfigOption.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.common 11 | 12 | import javafx.beans.property.SimpleObjectProperty 13 | 14 | class ConfigOption(val defaultValue: T) : SimpleObjectProperty(defaultValue) { 15 | 16 | fun resetToDefault() = set(defaultValue) 17 | 18 | } -------------------------------------------------------------------------------- /jabberwocky-core/src/main/kotlin/com/efficios/jabberwocky/project/BaseTraceProjectIterator.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.project 11 | 12 | import com.efficios.jabberwocky.collection.TraceCollectionIterator 13 | import com.efficios.jabberwocky.trace.Trace 14 | import com.efficios.jabberwocky.trace.event.TraceEvent 15 | import com.efficios.jabberwocky.utils.RewindingSortedCompoundIterator 16 | import com.efficios.jabberwocky.utils.SortedCompoundIterator 17 | 18 | class BaseTraceProjectIterator(project: TraceProject>) : 19 | RewindingSortedCompoundIterator>(project.traceCollections.map { it.iterator() }, compareBy { event -> event.timestamp }), 20 | TraceProjectIterator { 21 | 22 | override fun seek(timestamp: Long) { 23 | iterators.forEach { it.seek(timestamp) } 24 | clearCaches() 25 | } 26 | 27 | override fun close() { 28 | iterators.forEach { it.close() } 29 | } 30 | 31 | } -------------------------------------------------------------------------------- /jabberwocky-core/src/main/kotlin/com/efficios/jabberwocky/project/TraceProjectIterator.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.project 11 | 12 | import com.efficios.jabberwocky.trace.event.TraceEvent 13 | import com.efficios.jabberwocky.utils.RewindingIterator 14 | 15 | interface TraceProjectIterator : RewindingIterator, AutoCloseable { 16 | 17 | fun seek(timestamp: Long) 18 | 19 | /** Overridden to explicitly not throw any exception. */ 20 | override fun close() 21 | } 22 | -------------------------------------------------------------------------------- /jabberwocky-core/src/main/kotlin/com/efficios/jabberwocky/trace/Trace.kt: -------------------------------------------------------------------------------- 1 | package com.efficios.jabberwocky.trace 2 | 3 | import com.efficios.jabberwocky.trace.event.TraceEvent 4 | import com.google.common.collect.Iterators 5 | 6 | abstract class Trace { 7 | 8 | abstract val name: String 9 | 10 | /* Lazy-load the start time by reading the timestamp of the first event. */ 11 | val startTime: Long by lazy { 12 | var startTime: Long = 0L 13 | iterator().use { iter -> 14 | if (iter.hasNext()) { 15 | startTime = iter.next().timestamp 16 | } 17 | } 18 | startTime 19 | } 20 | 21 | val endTime: Long by lazy { 22 | var endTime: Long = 0L 23 | iterator().use { 24 | if (it.hasNext()) { 25 | endTime = Iterators.getLast(it).timestamp 26 | } 27 | } 28 | endTime 29 | } 30 | 31 | abstract fun iterator(): TraceIterator 32 | } 33 | -------------------------------------------------------------------------------- /jabberwocky-core/src/main/kotlin/com/efficios/jabberwocky/trace/TraceInitializationException.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.trace 11 | 12 | class TraceInitializationException : Exception { 13 | 14 | companion object { 15 | private val serialVersionUID = 3507492056815877150L 16 | } 17 | 18 | constructor() : super() {} 19 | 20 | constructor(message: String) : super(message) {} 21 | 22 | constructor(e: Throwable) : super(e) {} 23 | 24 | 25 | 26 | } 27 | -------------------------------------------------------------------------------- /jabberwocky-core/src/main/kotlin/com/efficios/jabberwocky/trace/TraceIterator.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.trace 11 | 12 | import com.efficios.jabberwocky.trace.event.TraceEvent 13 | import com.efficios.jabberwocky.utils.RewindingIterator 14 | 15 | interface TraceIterator : RewindingIterator, AutoCloseable { 16 | 17 | /** 18 | * Bring this iterator to the first event with the given timestamp. 19 | * Note there might be more than one event at this timestamp! 20 | */ 21 | fun seek(timestamp: Long) 22 | 23 | /** Return a new iterator at the exact same position as this one. */ 24 | fun copy(): TraceIterator 25 | 26 | /** 27 | * Close this iterator. 28 | * Overridden to not throw any exception. 29 | */ 30 | override fun close() 31 | } 32 | -------------------------------------------------------------------------------- /jabberwocky-core/src/main/kotlin/com/efficios/jabberwocky/trace/TraceIteratorPosition.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.trace 11 | 12 | import com.efficios.jabberwocky.trace.event.TraceEvent 13 | 14 | class TraceIteratorPosition> private constructor(private val sourceIterator: I) : AutoCloseable { 15 | 16 | companion object { 17 | /* Generate a position from an iterator's current position */ 18 | fun > of(iterator: TraceIterator) = TraceIteratorPosition(iterator.copy()) 19 | } 20 | 21 | /** Instantiate a new iterator at this position */ 22 | fun newIterator() = sourceIterator.copy() 23 | 24 | /** Since the position is backed by its own iterator, it needs to be close()'d too, unfortunately. */ 25 | override fun close() = sourceIterator.close() 26 | } 27 | -------------------------------------------------------------------------------- /jabberwocky-core/src/main/kotlin/com/efficios/jabberwocky/trace/event/TraceEvent.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.trace.event 11 | 12 | import com.efficios.jabberwocky.trace.Trace 13 | 14 | interface TraceEvent { 15 | 16 | val trace: Trace 17 | 18 | val timestamp: Long 19 | 20 | val cpu: Int 21 | 22 | val eventName: String 23 | 24 | val fields: Map 25 | 26 | val attributes: Map 27 | 28 | } 29 | -------------------------------------------------------------------------------- /jabberwocky-core/src/main/kotlin/com/efficios/jabberwocky/trace/event/TraceLostEvent.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.trace.event 11 | 12 | import com.efficios.jabberwocky.common.TimeRange 13 | 14 | interface TraceLostEvent : TraceEvent { 15 | 16 | val timeRange: TimeRange 17 | 18 | val nbLostEvents: Long 19 | 20 | } 21 | -------------------------------------------------------------------------------- /jabberwocky-core/src/main/kotlin/com/efficios/jabberwocky/utils/RewindingIterator.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.utils 11 | 12 | /** 13 | * Extension of the [Iterator] interface which supports going backwards, using [previous()] 14 | * and [hasPrevious()] functions. 15 | * 16 | * Unlike ListIterator it does not track its current index, since the iterated data structure 17 | * could be larger than Int.MAX_VALUE. 18 | */ 19 | interface RewindingIterator : Iterator { 20 | 21 | fun hasPrevious(): Boolean 22 | 23 | fun previous(): E 24 | 25 | } -------------------------------------------------------------------------------- /jabberwocky-core/src/main/kotlin/com/efficios/jabberwocky/utils/UsingResources.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.utils 11 | 12 | /** 13 | * Pseudo-try-with-resources. Taken from https://discuss.kotlinlang.org/t/kotlin-needs-try-with-resources/214/2 14 | * 15 | * Usage: 16 | * 17 | * using { 18 | * val closeable1 = MyObject1().autoClose() 19 | * val closeable2 = MyObject2().autoClose() 20 | * ... 21 | * } 22 | * 23 | * All variables declared with `.autoClose()` will be `close()`'d upon exiting the `using{}` block. 24 | */ 25 | 26 | class ResourceHolder : AutoCloseable { 27 | 28 | private val resources = arrayListOf() 29 | 30 | fun T.autoClose(): T { 31 | resources.add(this) 32 | return this 33 | } 34 | 35 | override fun close() { 36 | resources.reversed().forEach { it.close() } 37 | } 38 | } 39 | 40 | 41 | fun using(block: ResourceHolder.() -> R): R { 42 | val holder = ResourceHolder() 43 | try { 44 | return holder.block() 45 | } finally { 46 | holder.close() 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /jabberwocky-core/src/main/kotlin/com/efficios/jabberwocky/views/common/ColorDefinition.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.views.common 11 | 12 | 13 | data class ColorDefinition @JvmOverloads constructor(val red: Int, 14 | val green: Int, 15 | val blue: Int, 16 | val alpha: Int = ColorDefinition.MAX) { 17 | 18 | companion object { 19 | const val MIN = 0 20 | const val MAX = 255 21 | 22 | private fun checkValue(param: Int) { 23 | if (param < MIN || param > MAX) throw IllegalArgumentException() 24 | } 25 | } 26 | 27 | init { 28 | checkValue(red) 29 | checkValue(green) 30 | checkValue(blue) 31 | checkValue(alpha) 32 | } 33 | } -------------------------------------------------------------------------------- /jabberwocky-core/src/main/kotlin/com/efficios/jabberwocky/views/common/EventSymbolStyle.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.views.common 11 | 12 | /** 13 | * Symbol that can be used to represent single events. 14 | * 15 | * They are defined outside of any specific view, so that multiple views can use the same symbol 16 | * for the same event definition. 17 | */ 18 | enum class EventSymbolStyle { 19 | CIRCLE, 20 | CROSS, 21 | STAR, 22 | SQUARE, 23 | DIAMOND, 24 | TRIANGLE; 25 | } -------------------------------------------------------------------------------- /jabberwocky-core/src/main/kotlin/com/efficios/jabberwocky/views/timegraph/model/render/states/TimeGraphStateRender.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.views.timegraph.model.render.states 11 | 12 | import com.efficios.jabberwocky.common.TimeRange 13 | import com.efficios.jabberwocky.views.timegraph.model.render.tree.TimeGraphTreeElement 14 | 15 | /** 16 | * "Segment" of a time graph, representing the states of a single tree element 17 | * for a given time range. 18 | * 19 | * @author Alexandre Montplaisir 20 | */ 21 | data class TimeGraphStateRender(val timeRange: TimeRange, 22 | val treeElement: TimeGraphTreeElement, 23 | val stateIntervals: List) { 24 | 25 | companion object { 26 | /** Non-null reference to a dummy/empty render */ 27 | @JvmField 28 | val EMPTY_RENDER = TimeGraphStateRender(TimeRange.of(0, 0), TimeGraphTreeElement.DUMMY_ELEMENT, emptyList()); 29 | } 30 | 31 | } -------------------------------------------------------------------------------- /jabberwocky-core/src/main/kotlin/com/efficios/jabberwocky/views/xychart/model/provider/statesystem/StateSystemXYChartSeriesProvider.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.views.xychart.model.provider.statesystem 11 | 12 | import com.efficios.jabberwocky.views.xychart.model.provider.XYChartSeriesProvider 13 | import com.efficios.jabberwocky.views.xychart.model.render.XYChartSeries 14 | 15 | abstract class StateSystemXYChartSeriesProvider(series: XYChartSeries, 16 | protected val modelProvider: StateSystemXYChartProvider) : XYChartSeriesProvider(series) 17 | -------------------------------------------------------------------------------- /jabberwocky-core/src/main/kotlin/com/efficios/jabberwocky/views/xychart/model/render/XYChartRender.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.views.xychart.model.render 11 | 12 | import com.efficios.jabberwocky.common.TimeRange 13 | import com.efficios.jabberwocky.views.common.ColorDefinition 14 | 15 | /** 16 | * "Render" of a XY chart, containing all the relevant data points for a given 17 | * series, for a given time range. 18 | */ 19 | data class XYChartRender(val series: XYChartSeries, 20 | val range: TimeRange, 21 | val resolutionX: Long, 22 | val data: List) { 23 | 24 | companion object { 25 | val EMPTY_RENDER = XYChartRender( 26 | XYChartSeries("dummy", ColorDefinition(0, 0, 0), XYChartSeries.LineStyle.FULL), 27 | TimeRange.of(0, 0), 28 | 0L, 29 | emptyList()) 30 | } 31 | 32 | data class DataPoint(val x: Long, val y: Long) 33 | } -------------------------------------------------------------------------------- /jabberwocky-core/src/main/kotlin/com/efficios/jabberwocky/views/xychart/model/render/XYChartSeries.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.views.xychart.model.render 11 | 12 | import com.efficios.jabberwocky.views.common.ColorDefinition 13 | 14 | /** 15 | * Definition of a single series of an XY-Chart. 16 | */ 17 | data class XYChartSeries(val name: String, 18 | val color: ColorDefinition, 19 | val lineStyle: LineStyle, 20 | val symbolStyle: SymbolStyle = XYChartSeries.SymbolStyle.NONE) { 21 | 22 | enum class LineStyle { 23 | /** Standard line */ 24 | FULL, 25 | /** Dotted line */ 26 | DOTTED, 27 | /** Color the line and the area under it */ 28 | INTEGRAL 29 | } 30 | 31 | enum class SymbolStyle { 32 | // TODO NYI, we only use lines for now 33 | NONE 34 | } 35 | 36 | } -------------------------------------------------------------------------------- /jabberwocky-core/src/main/kotlin/com/efficios/jabberwocky/views/xychart/view/XYChartView.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.views.xychart.view 11 | 12 | import com.efficios.jabberwocky.common.TimeRange 13 | import com.efficios.jabberwocky.views.xychart.control.XYChartControl 14 | 15 | interface XYChartView { 16 | 17 | val control: XYChartControl 18 | 19 | val viewContext get() = control.viewContext 20 | 21 | fun dispose() 22 | fun clear() 23 | fun seekVisibleRange(newVisibleRange: TimeRange) 24 | fun drawSelection(selectionRange: TimeRange) 25 | } 26 | -------------------------------------------------------------------------------- /jabberwocky-core/src/test/kotlin/com/efficios/jabberwocky/utils/SortedCompoundIteratorTest.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.utils 11 | 12 | import java.util.* 13 | 14 | /** 15 | * Tests for the [SortedCompoundIterator]. 16 | */ 17 | class SortedCompoundIteratorTest : SortedCompoundIteratorTestBase() { 18 | 19 | override fun provideCompoundIterator(iterators: Collection>, comparator: Comparator): Iterator { 20 | return SortedCompoundIterator(iterators, comparator) 21 | } 22 | 23 | 24 | } -------------------------------------------------------------------------------- /jabberwocky-core/src/test/kotlin/com/efficios/jabberwocky/views/common/ColorDefinitionTest.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.views.common 11 | 12 | import org.junit.jupiter.api.Test 13 | import org.junit.jupiter.api.assertThrows 14 | 15 | class ColorDefinitionTest { 16 | 17 | @Test 18 | fun testValid() { 19 | ColorDefinition( 0, 0 , 0) 20 | ColorDefinition(128, 128, 128) 21 | ColorDefinition(255, 255, 255) 22 | 23 | ColorDefinition( 0, 0, 0, 0) 24 | ColorDefinition(128, 128, 128, 128) 25 | ColorDefinition(255, 255, 255, 255) 26 | } 27 | 28 | @Test 29 | fun testInvalid1() { 30 | assertThrows { ColorDefinition(-1, 0, 0, 0) } 31 | } 32 | 33 | @Test 34 | fun testInvalid2() { 35 | assertThrows { ColorDefinition(0, 0, 500, 0) } 36 | } 37 | } -------------------------------------------------------------------------------- /jabberwocky-core/src/test/kotlin/com/efficios/jabberwocky/views/xychart/model/provider/XYChartSeriesProviderStub.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.views.xychart.model.provider 11 | 12 | import com.efficios.jabberwocky.views.common.FlatUIColors 13 | import com.efficios.jabberwocky.views.xychart.model.render.XYChartRender 14 | import com.efficios.jabberwocky.views.xychart.model.render.XYChartSeries 15 | import java.util.concurrent.FutureTask 16 | 17 | class XYChartSeriesProviderStub : XYChartSeriesProvider(SERIES) { 18 | 19 | companion object { 20 | val SERIES = XYChartSeries("test-series", FlatUIColors.BLUE, XYChartSeries.LineStyle.FULL) 21 | } 22 | 23 | override fun fillSeriesRender(timestamps: List, task: FutureTask<*>?): List? { 24 | TODO("not implemented") //To change body of created functions use File | Settings | File Templates. 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /jabberwocky-core/src/test/kotlin/com/efficios/jabberwocky/views/xychart/model/provider/XYChartSeriesProviderTest.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.views.xychart.model.provider 11 | 12 | class XYChartSeriesProviderTest { 13 | } 14 | -------------------------------------------------------------------------------- /jabberwocky-ctf/kotlin-only-sources.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/jabberwocky-ctf/kotlin-only-sources.properties -------------------------------------------------------------------------------- /jabberwocky-ctf/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 4.0.0 13 | 14 | 15 | org.lttng.scope 16 | lttng-scope-master 17 | 0.5.0-SNAPSHOT 18 | 19 | 20 | jabberwocky-ctf 21 | jar 22 | 23 | Common Trace Format (CTF) Support for Jabberwocky 24 | 25 | 26 | 27 | org.lttng.scope 28 | ctfreader 29 | 30 | 31 | 32 | org.lttng.scope 33 | jabberwocky-core 34 | 35 | 36 | 37 | org.lttng.scope 38 | jabberwocky-core-test-base 39 | 40 | 41 | 42 | org.lttng.scope 43 | ttt 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /jabberwocky-ctf/src/main/kotlin/com/efficios/jabberwocky/ctf/trace/CtfTrace.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.ctf.trace 11 | 12 | import com.efficios.jabberwocky.ctf.trace.event.CtfTraceEvent 13 | import com.efficios.jabberwocky.ctf.trace.event.CtfTraceEventFactory 14 | import com.efficios.jabberwocky.trace.Trace 15 | import com.efficios.jabberwocky.trace.TraceInitializationException 16 | import org.eclipse.tracecompass.ctf.core.CTFException 17 | import org.eclipse.tracecompass.ctf.core.trace.CTFTrace 18 | import java.nio.file.Path 19 | 20 | class CtfTrace(val tracePath: Path) : Trace() { 21 | 22 | internal val innerTrace: CTFTrace = try { 23 | CTFTrace(tracePath.toFile()) 24 | } catch (e: CTFException) { 25 | throw TraceInitializationException(e) 26 | } 27 | 28 | override val name = tracePath.fileName.toString() 29 | 30 | override fun iterator(): CtfTraceIterator { 31 | return CtfTraceIterator(this) 32 | } 33 | 34 | val eventFactory = CtfTraceEventFactory(this) 35 | 36 | val environment: Map = innerTrace.environment 37 | } 38 | -------------------------------------------------------------------------------- /jabberwocky-ctf/src/main/kotlin/com/efficios/jabberwocky/ctf/trace/CtfTraceUtils.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.ctf.trace 11 | 12 | import com.efficios.jabberwocky.ctf.trace.event.CtfTraceEvent 13 | import com.google.common.primitives.Ints 14 | 15 | fun CtfTrace.getTracerName(): String? { 16 | /* Remove the "" at the start and end of the string */ 17 | return environment["tracer_name"]?.replace("^\"|\"$".toRegex(), "") 18 | } 19 | 20 | fun CtfTrace.getTracerMajorVersion(): Int? { 21 | val str = environment["tracer_major"] ?: return null 22 | return Ints.tryParse(str) 23 | } 24 | 25 | fun CtfTrace.getTracerMinorVersion(): Int? { 26 | val str = environment["tracer_minor"] ?: return null 27 | return Ints.tryParse(str) 28 | } 29 | -------------------------------------------------------------------------------- /jabberwocky-ctf/src/main/kotlin/com/efficios/jabberwocky/ctf/trace/event/CtfTraceEvent.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.ctf.trace.event 11 | 12 | import com.efficios.jabberwocky.ctf.trace.CtfTrace 13 | import com.efficios.jabberwocky.trace.event.BaseTraceEvent 14 | import com.efficios.jabberwocky.trace.event.FieldValue 15 | 16 | open class CtfTraceEvent(override val trace: CtfTrace, 17 | timestamp: Long, 18 | cpu: Int, 19 | eventName: String, 20 | eventFields: Map, 21 | attributes: Map? = null) : BaseTraceEvent(trace, timestamp, cpu, eventName, eventFields, attributes) 22 | -------------------------------------------------------------------------------- /jabberwocky-ctf/src/test/kotlin/com/efficios/jabberwocky/ctf/trace/CtfTraceTest.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.ctf.trace 11 | 12 | import org.junit.jupiter.api.AfterAll 13 | import org.junit.jupiter.api.Assertions.assertEquals 14 | import org.junit.jupiter.api.BeforeAll 15 | import org.junit.jupiter.api.Test 16 | import org.lttng.scope.ttt.ctf.CtfTestTrace 17 | 18 | class CtfTraceTest { 19 | 20 | companion object { 21 | private lateinit var ETT1: ExtractedCtfTestTrace 22 | private lateinit var ETT2: ExtractedCtfTestTrace 23 | 24 | @BeforeAll 25 | @JvmStatic 26 | fun setupClass() { 27 | ETT1 = ExtractedCtfTestTrace(CtfTestTrace.KERNEL) 28 | ETT2 = ExtractedCtfTestTrace(CtfTestTrace.TRACE2) 29 | } 30 | 31 | @AfterAll 32 | @JvmStatic 33 | fun teardownClass() { 34 | ETT1.close() 35 | ETT2.close() 36 | } 37 | } 38 | 39 | @Test 40 | fun testName() { 41 | assertEquals("kernel", ETT1.trace.name) 42 | assertEquals("trace2", ETT2.trace.name) 43 | } 44 | 45 | } -------------------------------------------------------------------------------- /jabberwocky-ctf/src/test/kotlin/com/efficios/jabberwocky/ctf/trace/ExtractedCtfTestTrace.kt: -------------------------------------------------------------------------------- 1 | package com.efficios.jabberwocky.ctf.trace 2 | 3 | import com.efficios.jabberwocky.trace.TraceInitializationException 4 | import org.lttng.scope.ttt.ctf.CtfTestTrace 5 | import java.nio.file.Paths 6 | 7 | internal class ExtractedCtfTestTrace(private val testTrace: CtfTestTrace) : AutoCloseable { 8 | 9 | private val testTraceExtractor: CtfTestTraceExtractor = CtfTestTraceExtractor.extractTestTrace(testTrace) 10 | val trace: CtfTrace 11 | 12 | init { 13 | val tracePath = testTraceExtractor.trace.path 14 | try { 15 | trace = CtfTrace(Paths.get(tracePath)) 16 | } catch (e: TraceInitializationException) { 17 | throw IllegalArgumentException(e) 18 | } 19 | } 20 | 21 | override fun close() { 22 | testTraceExtractor.close() 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /jabberwocky-lttng/mixed-java-kotlin-sources.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/jabberwocky-lttng/mixed-java-kotlin-sources.properties -------------------------------------------------------------------------------- /jabberwocky-lttng/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 4.0.0 13 | 14 | 15 | mixed 16 | 17 | 18 | 19 | org.lttng.scope 20 | lttng-scope-master 21 | 0.5.0-SNAPSHOT 22 | 23 | 24 | jabberwocky-lttng 25 | jar 26 | 27 | LTTng Support for Jabberwocky 28 | 29 | 30 | 31 | org.lttng.scope 32 | jabberwocky-core 33 | 34 | 35 | 36 | org.lttng.scope 37 | jabberwocky-ctf 38 | 39 | 40 | 41 | org.lttng.scope 42 | jabberwocky-core-test-base 43 | 44 | 45 | 46 | org.lttng.scope 47 | ttt 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /jabberwocky-lttng/src/main/java/com/efficios/jabberwocky/lttng/kernel/views/timegraph/resources/Messages.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016-2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.lttng.kernel.views.timegraph.resources; 11 | 12 | /** 13 | * Messages class 14 | * 15 | * @author Alexandre Montplaisir 16 | * @noreference Message class 17 | */ 18 | @SuppressWarnings("javadoc") 19 | public class Messages { 20 | 21 | public static final String resourcesCpuIrqProviderName = "CPU / IRQ"; 22 | public static final String resourcesIrqProviderName = "IRQ"; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /jabberwocky-lttng/src/main/java/com/efficios/jabberwocky/lttng/kernel/views/timegraph/resources/elements/Messages.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package com.efficios.jabberwocky.lttng.kernel.views.timegraph.resources.elements; 11 | 12 | /** 13 | * Messages class 14 | * 15 | * @author Alexandre Montplaisir 16 | * @noreference Message class 17 | */ 18 | @SuppressWarnings("javadoc") 19 | public class Messages { 20 | 21 | public static final String treeElementPrefixCpu = "CPU"; 22 | public static final String treeElementPrefixIrq = "IRQ"; 23 | public static final String treeElementPrefixSoftIrq = "Soft IRQ"; 24 | 25 | } 26 | -------------------------------------------------------------------------------- /jabberwocky-lttng/src/main/java/com/efficios/jabberwocky/lttng/kernel/views/timegraph/threads/Messages.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2016 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package com.efficios.jabberwocky.lttng.kernel.views.timegraph.threads; 11 | 12 | /** 13 | * Messages class 14 | * 15 | * @author Alexandre Montplaisir 16 | * @noreference Message class 17 | */ 18 | @SuppressWarnings("javadoc") 19 | public class Messages { 20 | 21 | public static String ControlFlowSortingModes_ByTid = "Sort by TID"; 22 | public static String ControlFlowSortingModes_ByThreadName = "Sort by Thread Name"; 23 | 24 | public static String ControlFlowFilterModes_InactiveEntries = "Filter inactive entries"; 25 | 26 | public static String threadsProviderName = "Threads"; 27 | 28 | public static String arrowSeriesCPUs = "CPUs"; 29 | 30 | public static String propertyNotAvailable = "N/A"; 31 | public static String propertyNameCpu = "CPU"; 32 | public static String propertyNameSyscall = "Syscall"; 33 | 34 | } 35 | -------------------------------------------------------------------------------- /jabberwocky-lttng/src/main/java/com/efficios/jabberwocky/lttng/kernel/views/timegraph/threads/ThreadsConfigModes.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2016 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package com.efficios.jabberwocky.lttng.kernel.views.timegraph.threads; 11 | 12 | import com.efficios.jabberwocky.views.timegraph.model.provider.ITimeGraphModelProvider.FilterMode; 13 | import com.efficios.jabberwocky.views.timegraph.model.provider.ITimeGraphModelProvider.SortingMode; 14 | 15 | public interface ThreadsConfigModes { 16 | 17 | SortingMode SORTING_BY_TID = new SortingMode(Messages.ControlFlowSortingModes_ByTid); 18 | 19 | SortingMode SORTING_BY_THREAD_NAME = new SortingMode(Messages.ControlFlowSortingModes_ByThreadName); 20 | 21 | FilterMode FILTERING_INACTIVE_ENTRIES = new FilterMode(Messages.ControlFlowFilterModes_InactiveEntries); 22 | } 23 | -------------------------------------------------------------------------------- /jabberwocky-lttng/src/main/kotlin/com/efficios/jabberwocky/lttng/kernel/analysis/os/handlers/KernelEventHandler.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 EfficiOS Inc., Alexandre Montplaisir 3 | * Copyright (C) 2015 Ericsson 4 | * 5 | * All rights reserved. This program and the accompanying materials are 6 | * made available under the terms of the Eclipse Public License v1.0 which 7 | * accompanies this distribution, and is available at 8 | * http://www.eclipse.org/legal/epl-v10.html 9 | */ 10 | 11 | package com.efficios.jabberwocky.lttng.kernel.analysis.os.handlers 12 | 13 | import ca.polymtl.dorsal.libdelorean.IStateSystemWriter 14 | import com.efficios.jabberwocky.lttng.kernel.trace.layout.LttngKernelEventLayout 15 | import com.efficios.jabberwocky.trace.event.TraceEvent 16 | 17 | /** 18 | * Base class for all kernel event handlers. 19 | */ 20 | abstract class KernelEventHandler(protected val layout: LttngKernelEventLayout) { 21 | 22 | abstract fun handleEvent(ss: IStateSystemWriter, event: TraceEvent) 23 | } 24 | -------------------------------------------------------------------------------- /jabberwocky-lttng/src/main/kotlin/com/efficios/jabberwocky/lttng/kernel/analysis/os/handlers/ProcessExitHandler.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 EfficiOS Inc., Alexandre Montplaisir 3 | * Copyright (C) 2015 Ericsson 4 | * 5 | * All rights reserved. This program and the accompanying materials are 6 | * made available under the terms of the Eclipse Public License v1.0 which 7 | * accompanies this distribution, and is available at 8 | * http://www.eclipse.org/legal/epl-v10.html 9 | */ 10 | 11 | package com.efficios.jabberwocky.lttng.kernel.analysis.os.handlers 12 | 13 | import ca.polymtl.dorsal.libdelorean.IStateSystemWriter 14 | import com.efficios.jabberwocky.lttng.kernel.trace.layout.LttngKernelEventLayout 15 | import com.efficios.jabberwocky.trace.event.TraceEvent 16 | 17 | class ProcessExitHandler(layout: LttngKernelEventLayout) : KernelEventHandler(layout) { 18 | 19 | override fun handleEvent(ss: IStateSystemWriter, event: TraceEvent) { 20 | /* No state modifications tracked atm */ 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /jabberwocky-lttng/src/main/kotlin/com/efficios/jabberwocky/lttng/kernel/analysis/os/handlers/ProcessFreeHandler.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 EfficiOS Inc., Alexandre Montplaisir 3 | * Copyright (C) 2015 Ericsson 4 | * 5 | * All rights reserved. This program and the accompanying materials are 6 | * made available under the terms of the Eclipse Public License v1.0 which 7 | * accompanies this distribution, and is available at 8 | * http://www.eclipse.org/legal/epl-v10.html 9 | */ 10 | 11 | package com.efficios.jabberwocky.lttng.kernel.analysis.os.handlers 12 | 13 | import ca.polymtl.dorsal.libdelorean.IStateSystemWriter 14 | import com.efficios.jabberwocky.lttng.kernel.analysis.os.Attributes 15 | import com.efficios.jabberwocky.lttng.kernel.trace.layout.LttngKernelEventLayout 16 | import com.efficios.jabberwocky.trace.event.FieldValue.IntegerValue 17 | import com.efficios.jabberwocky.trace.event.TraceEvent 18 | 19 | class ProcessFreeHandler(layout: LttngKernelEventLayout) : KernelEventHandler(layout) { 20 | 21 | override fun handleEvent(ss: IStateSystemWriter, event: TraceEvent) { 22 | val cpu = event.cpu 23 | val tid = (event.fields[layout.fieldTid] as IntegerValue).value.toInt() 24 | 25 | val threadAttributeName = Attributes.buildThreadAttributeName(tid, cpu) ?: return 26 | 27 | /* 28 | * Remove the process and all its sub-attributes from the current state 29 | */ 30 | ss.getQuarkRelativeAndAdd(ss.getNodeThreads(), threadAttributeName) 31 | .let { ss.removeAttribute(event.timestamp, it) } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /jabberwocky-lttng/src/main/kotlin/com/efficios/jabberwocky/lttng/kernel/trace/layout/LttngKernel26EventLayout.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 EfficiOS Inc., Alexandre Montplaisir 3 | * Copyright (C) 2014 Ericsson 4 | * 5 | * All rights reserved. This program and the accompanying materials are 6 | * made available under the terms of the Eclipse Public License v1.0 which 7 | * accompanies this distribution, and is available at 8 | * http://www.eclipse.org/legal/epl-v10.html 9 | */ 10 | 11 | package com.efficios.jabberwocky.lttng.kernel.trace.layout 12 | 13 | /** 14 | * This file defines all the known event and field names for LTTng kernel 15 | * traces, for versions of lttng-modules 2.6 and above. 16 | */ 17 | open class LttngKernel26EventLayout protected constructor() : LttngKernel20EventLayout() { 18 | 19 | companion object { 20 | val instance = LttngKernel26EventLayout() 21 | } 22 | 23 | /* New event names in this version */ 24 | override val eventSyscallEntryPrefix = "syscall_entry_" 25 | override val eventCompatSyscallEntryPrefix = "compat_syscall_entry_" 26 | override val eventSyscallExitPrefix = "syscall_exit_" 27 | override val eventCompatSyscallExitPrefix = "compat_syscall_exit_" 28 | 29 | } 30 | -------------------------------------------------------------------------------- /jabberwocky-lttng/src/main/kotlin/com/efficios/jabberwocky/lttng/kernel/trace/layout/LttngKernel28EventLayout.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 EfficiOS Inc., Alexandre Montplaisir 3 | * Copyright (C) 2015 Ericsson 4 | * Copyright (C) 2015 École Polytechnique de Montréal 5 | * 6 | * All rights reserved. This program and the accompanying materials are 7 | * made available under the terms of the Eclipse Public License v1.0 which 8 | * accompanies this distribution, and is available at 9 | * http://www.eclipse.org/legal/epl-v10.html 10 | */ 11 | 12 | package com.efficios.jabberwocky.lttng.kernel.trace.layout 13 | 14 | /** 15 | * This file defines all the known event and field names for LTTng kernel 16 | * traces, for versions of lttng-modules 2.8 and above. 17 | */ 18 | open class LttngKernel28EventLayout protected constructor() : LttngKernel27EventLayout() { 19 | 20 | companion object { 21 | val instance = LttngKernel28EventLayout() 22 | } 23 | 24 | // TODO Technically, this event was added with LTTng 2.8, it should not be part of the super-classes 25 | override val eventSchedProcessWaking = "sched_waking" 26 | } -------------------------------------------------------------------------------- /jabberwocky-lttng/src/main/kotlin/com/efficios/jabberwocky/lttng/kernel/trace/layout/LttngKernel29EventLayout.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 EfficiOS Inc., Alexandre Montplaisir 3 | * Copyright (C) 2016 École Polytechnique de Montréal 4 | * 5 | * All rights reserved. This program and the accompanying materials are 6 | * made available under the terms of the Eclipse Public License v1.0 which 7 | * accompanies this distribution, and is available at 8 | * http://www.eclipse.org/legal/epl-v10.html 9 | */ 10 | 11 | package com.efficios.jabberwocky.lttng.kernel.trace.layout 12 | 13 | /** 14 | * This file defines all the known event and field names for LTTng kernel 15 | * traces, for versions of lttng-modules 2.9 and above. 16 | */ 17 | open class LttngKernel29EventLayout protected constructor() : LttngKernel28EventLayout() { 18 | 19 | companion object { 20 | val instance = LttngKernel29EventLayout() 21 | 22 | private const val FIELD_VARIANT_SELECTED = "Any" 23 | } 24 | 25 | override val fieldPathTcpSeq = listOf("network_header", FIELD_VARIANT_SELECTED, "transport_header", "tcp", "seq") 26 | override val fieldPathTcpAckSeq = listOf("network_header", FIELD_VARIANT_SELECTED, "transport_header", "tcp", "ack_seq") 27 | override val fieldPathTcpFlags = listOf("network_header", FIELD_VARIANT_SELECTED, "transport_header", "tcp", "flags") 28 | 29 | } -------------------------------------------------------------------------------- /jabberwocky-lttng/src/test/kotlin/com/efficios/jabberwocky/lttng/testutils/ExtractedCtfTestTrace.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package com.efficios.jabberwocky.lttng.testutils 11 | 12 | import com.efficios.jabberwocky.ctf.trace.CtfTrace 13 | import com.efficios.jabberwocky.trace.TraceInitializationException 14 | import org.lttng.scope.ttt.ctf.CtfTestTrace 15 | import java.nio.file.Paths 16 | 17 | internal class ExtractedCtfTestTrace(private val testTrace: CtfTestTrace) : AutoCloseable { 18 | 19 | private val testTraceExtractor: CtfTestTraceExtractor = CtfTestTraceExtractor.extractTestTrace(testTrace) 20 | val trace: CtfTrace 21 | 22 | init { 23 | val tracePath = testTraceExtractor.trace.path 24 | try { 25 | trace = CtfTrace(Paths.get(tracePath)) 26 | } catch (e: TraceInitializationException) { 27 | throw IllegalArgumentException(e) 28 | } 29 | 30 | } 31 | 32 | override fun close() { 33 | testTraceExtractor.close() 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /javeltrace/kotlin-only-sources.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/javeltrace/kotlin-only-sources.properties -------------------------------------------------------------------------------- /libdelorean/mixed-java-kotlin-sources.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/libdelorean/mixed-java-kotlin-sources.properties -------------------------------------------------------------------------------- /libdelorean/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 4.0.0 13 | 14 | 15 | org.lttng.scope 16 | lttng-scope-master 17 | 0.5.0-SNAPSHOT 18 | 19 | 20 | libdelorean 21 | jar 22 | 23 | LibDelorean State System Library 24 | 25 | 26 | 27 | com.google.guava 28 | guava 29 | 30 | 31 | 32 | org.json 33 | json 34 | 35 | 36 | 37 | org.lttng.scope 38 | ttt 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /libdelorean/src/main/java/ca/polymtl/dorsal/libdelorean/exceptions/StateSystemDisposedException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * Copyright (C) 2012-2014 Ericsson 4 | * 5 | * All rights reserved. This program and the accompanying materials are 6 | * made available under the terms of the Eclipse Public License v1.0 which 7 | * accompanies this distribution, and is available at 8 | * http://www.eclipse.org/legal/epl-v10.html 9 | */ 10 | 11 | package ca.polymtl.dorsal.libdelorean.exceptions; 12 | 13 | /** 14 | * Exception thrown by the state system if a query is done on it after it has 15 | * been disposed. 16 | * 17 | * @author Alexandre Montplaisir 18 | */ 19 | public class StateSystemDisposedException extends RuntimeException { 20 | 21 | private static final long serialVersionUID = 7896041701818620084L; 22 | 23 | /** 24 | * Create a new simple StateSystemDisposedException. 25 | */ 26 | public StateSystemDisposedException() { 27 | super(); 28 | } 29 | 30 | /** 31 | * Create a new StateSystemDisposedException based on a previous one. 32 | * 33 | * @param e 34 | * The previous exception 35 | */ 36 | public StateSystemDisposedException(Throwable e) { 37 | super(e); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /libdelorean/src/test/java/ca/polymtl/dorsal/libdelorean/backend/HistoryTreeBackendReOpenTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * Copyright (C) 2016 Ericsson 4 | * 5 | * All rights reserved. This program and the accompanying materials are 6 | * made available under the terms of the Eclipse Public License v1.0 which 7 | * accompanies this distribution, and is available at 8 | * http://www.eclipse.org/legal/epl-v10.html 9 | */ 10 | 11 | package ca.polymtl.dorsal.libdelorean.backend; 12 | 13 | import ca.polymtl.dorsal.libdelorean.backend.historytree.HistoryTreeBackend; 14 | 15 | /** 16 | * Test the {@link HistoryTreeBackend} class by re-opening an existing file. 17 | */ 18 | public class HistoryTreeBackendReOpenTest extends HistoryTreeBackendTest { 19 | 20 | @Override 21 | protected void afterInsertionCb() { 22 | /* 23 | * Close the existing backend, and instantiate a new one that will re-read the 24 | * same file. 25 | */ 26 | fBackend.dispose(); 27 | fBackend = new HistoryTreeBackend(SSID, fTempFile, PROVIDER_VERSION); 28 | 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /lttng-scope-ui/mixed-java-kotlin-sources.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/mixed-java-kotlin-sources.properties -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/common/process/Messages.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2016 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.lttng.scope.common.process; 11 | 12 | /** 13 | * Message bundle for the package 14 | */ 15 | @SuppressWarnings("javadoc") 16 | public class Messages { 17 | 18 | static final String ProcessUtils_NoResults = "No results were returned."; 19 | static final String ProcessUtils_ErrorDuringExecution = "Error during execution of the script."; 20 | static final String ProcessUtils_ErrorNoOutput = "(No output)"; 21 | static final String ProcessUtils_ExecutionInterrupted = "Execution was interrupted."; 22 | 23 | private Messages() {} 24 | } 25 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/LamiConfigFileStrings.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2016 EfficiOS Inc., Philippe Proulx 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.lttng.scope.lami.core; 11 | 12 | /** 13 | * Strings used in the config files describing LAMI analyses. 14 | * 15 | * @author Philippe Proulx 16 | * @noimplement This interface is not intended to be implemented by clients. 17 | */ 18 | @SuppressWarnings({ "javadoc", "nls" }) 19 | public interface LamiConfigFileStrings { 20 | 21 | String PROP_NAME = "name"; 22 | String PROP_COMMAND = "command"; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/aspect/Messages.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2016 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.lttng.scope.lami.aspect; 11 | 12 | /** 13 | * Message bundle for the package 14 | * 15 | * @noreference Messages class 16 | */ 17 | @SuppressWarnings("javadoc") 18 | public class Messages { 19 | 20 | static final String LamiAspect_Name = "name"; 21 | static final String LamiAspect_Type = "type"; 22 | 23 | static final String LamiAspect_TimeRangeBegin = "begin"; 24 | static final String LamiAspect_TimeRangeDuration = "duration"; 25 | static final String LamiAspect_TimeRangeEnd = "end"; 26 | 27 | static final String LamiIRQTypeAspect_HardwareIRQ = "Hard"; 28 | static final String LamiIRQTypeAspect_SoftIRQ = "Soft"; 29 | 30 | private Messages() { 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/handler/messages.properties: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Copyright (c) 2015, 2016 EfficiOS Inc. and others 3 | # 4 | # All rights reserved. This program and the accompanying materials 5 | # are made available under the terms of the Eclipse Public License v1.0 6 | # which accompanies this distribution, and is available at 7 | # http://www.eclipse.org/legal/epl-v10.html 8 | ############################################################################### 9 | 10 | LamiAnalysis_MainTaskName = Invoking external analysis script 11 | 12 | ParameterDialog_BaseCommand = Base command 13 | ParameterDialog_ExternalParameters = External Analysis Parameters 14 | ParameterDialog_ExternalParametersDescription = Extra parameters to pass to the external analysis. Leave empty for none. 15 | ParameterDialog_StringValidatorMessage = Allowed characters are letters, numbers, ',' and '-' 16 | ParameterDialog_ReportNameSuffix = Report 17 | 18 | ErrorDialog_Info = External script completed 19 | ErrorDialog_InfoMessage = The script finished executing. 20 | ErrorDialog_Error = Error running external script 21 | ErrorDialog_ErrorMessage = The script terminated abnormally. 22 | 23 | AddAnalysisDialog_Title = Add External Analysis 24 | AddAnalysisDialog_Name = Name 25 | AddAnalysisDialog_Command = Command 26 | AddAnalysisDialog_NameEmptyErrorMessage = You must name the new external analysis 27 | AddAnalysisDialog_CommandEmptyErrorMessage = The command line cannot be empty 28 | AddAnalysisDialog_ErrorBoxTitle = Cannot add external analysis 29 | AddAnalysisDialog_ErrorBoxMessage = Cannot add external analysis 30 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/module/Messages.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2015, 2016 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.lttng.scope.lami.module; 11 | 12 | /** 13 | * Message bundle for the package 14 | */ 15 | @SuppressWarnings("javadoc") 16 | public class Messages { 17 | 18 | static final String LamiAnalysis_DefaultDynamicTableName = "Dynamic Table"; 19 | 20 | static final String LamiAnalysis_MainTaskName = "Invoking external analysis script"; 21 | static final String LamiAnalysis_NoResults = "No results were returned."; 22 | static final String LamiAnalysis_ErrorDuringExecution = "Error during execution of the script."; 23 | static final String LamiAnalysis_ErrorNoOutput = "(No output)"; 24 | static final String LamiAnalysis_ExecutionInterrupted = "Execution was interrupted."; 25 | 26 | static final String LamiAnalysis_ExtendedTableNamePrefix = "Extended"; 27 | 28 | private Messages() { 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/types/LamiBitrate.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2016 EfficiOS Inc., Philippe Proulx 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.lttng.scope.lami.types; 11 | 12 | import org.jetbrains.annotations.Nullable; 13 | 14 | /** 15 | * Class for LAMI 'bitrate' types. 16 | * 17 | * @author Philippe Proulx 18 | */ 19 | public class LamiBitrate extends LamiDoubleNumber { 20 | 21 | /** 22 | * Constructor 23 | * 24 | * @param value 25 | * The bitrate value, in bits per second (bps) 26 | */ 27 | public LamiBitrate(double value) { 28 | super(value); 29 | } 30 | 31 | /** 32 | * Constructor (with limits) 33 | * 34 | * @param low 35 | * Lower bound of value (bps) 36 | * @param value 37 | * Value (bps) 38 | * @param high 39 | * Higher bound of value (bps) 40 | */ 41 | public LamiBitrate(@Nullable Double low, @Nullable Double value, @Nullable Double high) { 42 | super(low, value, high); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/types/LamiBoolean.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2015, 2016 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.lttng.scope.lami.types; 11 | 12 | import org.jetbrains.annotations.Nullable; 13 | 14 | class LamiBoolean extends LamiData { 15 | 16 | private static final LamiBoolean TRUE = new LamiBoolean(true); 17 | private static final LamiBoolean FALSE = new LamiBoolean(false); 18 | 19 | public static LamiBoolean instance(boolean value) { 20 | return (value ? TRUE : FALSE); 21 | } 22 | 23 | private final boolean fValue; 24 | 25 | private LamiBoolean(boolean value) { 26 | fValue = value; 27 | } 28 | 29 | public boolean getValue() { 30 | return fValue; 31 | } 32 | 33 | @Override 34 | public @Nullable 35 | String toString() { 36 | return (fValue ? 37 | Messages.LamiBoolean_Yes : 38 | Messages.LamiBoolean_No); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/types/LamiCPU.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2016 EfficiOS Inc., Philippe Proulx 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.lttng.scope.lami.types; 11 | 12 | class LamiCPU extends LamiData { 13 | 14 | private final int fId; 15 | 16 | public LamiCPU(int id) { 17 | fId = id; 18 | } 19 | 20 | public int getId() { 21 | return fId; 22 | } 23 | 24 | @Override 25 | public String toString() { 26 | return Integer.toString(fId); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/types/LamiDisk.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2016 EfficiOS Inc., Philippe Proulx 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.lttng.scope.lami.types; 11 | 12 | /** 13 | * Lami 'disk' value. 14 | * 15 | * A disk can be "sda". It may contain partitions. 16 | * 17 | * @author Philippe Proulx 18 | */ 19 | class LamiDisk extends LamiString { 20 | 21 | public LamiDisk(String value) { 22 | super(value); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/types/LamiDiskPartition.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2016 EfficiOS Inc., Philippe Proulx 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.lttng.scope.lami.types; 11 | 12 | /** 13 | * Lami 'disk partition' value. 14 | * 15 | * A disk partition is something like "sda2". 16 | * 17 | * @author Philippe Proulx 18 | */ 19 | class LamiDiskPartition extends LamiString { 20 | 21 | public LamiDiskPartition(String value) { 22 | super(value); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/types/LamiDuration.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2016 EfficiOS Inc., Philippe Proulx 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.lttng.scope.lami.types; 11 | 12 | import org.jetbrains.annotations.Nullable; 13 | 14 | /** 15 | * Duration data element 16 | * 17 | * @author Philippe Proulx 18 | */ 19 | public class LamiDuration extends LamiLongNumber { 20 | 21 | /** 22 | * Constructor 23 | * 24 | * @param value 25 | * The duration value (as a long) 26 | */ 27 | public LamiDuration(long value) { 28 | super(value); 29 | } 30 | 31 | /** 32 | * Constructor (with limits) 33 | * 34 | * @param low 35 | * Lower bound of value (ns) 36 | * @param value 37 | * Value (ns) 38 | * @param high 39 | * Higher bound of value (ns) 40 | */ 41 | public LamiDuration(@Nullable Long low, @Nullable Long value, @Nullable Long high) { 42 | super(low, value, high); 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/types/LamiEmpty.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2015, 2016 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.lttng.scope.lami.types; 11 | 12 | class LamiEmpty extends LamiData { 13 | 14 | public static final LamiEmpty INSTANCE = new LamiEmpty(); 15 | 16 | private LamiEmpty() {} 17 | 18 | @Override 19 | public String toString() { 20 | return null; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/types/LamiFileDescriptor.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2016 EfficiOS Inc., Philippe Proulx 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.lttng.scope.lami.types; 11 | 12 | class LamiFileDescriptor extends LamiData { 13 | 14 | private final int fFd; 15 | 16 | public LamiFileDescriptor(int fd) { 17 | fFd = fd; 18 | } 19 | 20 | public int getId() { 21 | return fFd; 22 | } 23 | 24 | @Override 25 | public String toString() { 26 | return Integer.toString(fFd); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/types/LamiNetworkInterface.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2016 EfficiOS Inc., Philippe Proulx 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.lttng.scope.lami.types; 11 | 12 | class LamiNetworkInterface extends LamiString { 13 | public LamiNetworkInterface(String value) { 14 | super(value); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/types/LamiPath.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2016 EfficiOS Inc., Philippe Proulx 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.lttng.scope.lami.types; 11 | 12 | class LamiPath extends LamiString { 13 | public LamiPath(String value) { 14 | super(value); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/types/LamiRatio.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2016 EfficiOS Inc., Philippe Proulx 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.lttng.scope.lami.types; 11 | 12 | import org.jetbrains.annotations.Nullable; 13 | 14 | class LamiRatio extends LamiDoubleNumber { 15 | 16 | public LamiRatio(double value) { 17 | super(value); 18 | } 19 | 20 | public LamiRatio(@Nullable Double low, @Nullable Double value, @Nullable Double high) { 21 | super(low, value, high); 22 | } 23 | 24 | @Override 25 | public @Nullable String toString() { 26 | // TODO: The string should probably include the low and 27 | // high limits here. 28 | Number value = getValue(); 29 | 30 | if (value != null) { 31 | return String.format("%.2f", value.doubleValue() * 100); //$NON-NLS-1$ 32 | } 33 | 34 | return null; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/types/LamiSize.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2016 EfficiOS Inc., Philippe Proulx 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.lttng.scope.lami.types; 11 | 12 | import org.jetbrains.annotations.Nullable; 13 | 14 | /** 15 | * Class for LAMI 'size' types. 16 | * 17 | * @author Philippe Proulx 18 | */ 19 | public class LamiSize extends LamiLongNumber { 20 | 21 | /** 22 | * Constructor 23 | * 24 | * @param value 25 | * The size value, in bytes 26 | */ 27 | public LamiSize(long value) { 28 | super(value); 29 | } 30 | 31 | /** 32 | * Constructor (with limits) 33 | * 34 | * @param low 35 | * Lower bound of value (bytes) 36 | * @param value 37 | * Value (bytes) 38 | * @param high 39 | * Higher bound of value (bytes) 40 | */ 41 | public LamiSize(@Nullable Long low, @Nullable Long value, @Nullable Long high) { 42 | super(low, value, high); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/types/LamiString.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2015, 2016 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.lttng.scope.lami.types; 11 | 12 | class LamiString extends LamiData { 13 | 14 | private final String fValue; 15 | 16 | public LamiString(String value) { 17 | fValue = value; 18 | } 19 | 20 | public String getValue() { 21 | return fValue; 22 | } 23 | 24 | @Override 25 | public String toString() { 26 | return fValue; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/types/LamiSystemCall.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2016 EfficiOS Inc., Philippe Proulx 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.lttng.scope.lami.types; 11 | 12 | /** 13 | * Data element for LAMI system call objects. 14 | * 15 | * @author Philippe Proulx 16 | */ 17 | public class LamiSystemCall extends LamiString { 18 | 19 | private final String fString; 20 | 21 | /** 22 | * Constructor 23 | * 24 | * @param value 25 | * The 'value' field of the system call, typically its name 26 | */ 27 | public LamiSystemCall(String value) { 28 | super(value); 29 | 30 | if (value.endsWith("()")) { //$NON-NLS-1$ 31 | fString = value; 32 | } else { 33 | fString = value + "()"; //$NON-NLS-1$ 34 | } 35 | } 36 | 37 | @Override 38 | public String toString() { 39 | return fString; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/types/LamiTimestamp.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2015, 2016 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.lttng.scope.lami.types; 11 | 12 | import org.jetbrains.annotations.Nullable; 13 | 14 | /** 15 | * Lami timestamp data type 16 | * 17 | * @author Alexandre Montplaisir 18 | */ 19 | public class LamiTimestamp extends LamiLongNumber { 20 | 21 | /** 22 | * Construct a time stamp from a value in ns. 23 | * 24 | * @param value 25 | * The value 26 | */ 27 | public LamiTimestamp(long value) { 28 | super(value); 29 | } 30 | 31 | /** 32 | * Constructor (with limits) 33 | * 34 | * @param low 35 | * Lower bound of value (ns since Unix epoch) 36 | * @param value 37 | * Value (ns since Unix epoch) 38 | * @param high 39 | * Higher bound of value (ns since Unix epoch) 40 | */ 41 | public LamiTimestamp(@Nullable Long low, @Nullable Long value, @Nullable Long high) { 42 | super(low, value, high); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/types/LamiUnknown.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2015, 2016 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.lttng.scope.lami.types; 11 | 12 | /** 13 | * Lami 'unknown' value. 14 | * 15 | * The special unknown object represents an unknown value. It is typically used 16 | * in result table cells where a given computation cannot produce a result for 17 | * some reason. 18 | * 19 | * @author Alexandre Montplaisir 20 | */ 21 | class LamiUnknown extends LamiData { 22 | 23 | public static final LamiUnknown INSTANCE = new LamiUnknown(); 24 | 25 | private LamiUnknown() {} 26 | 27 | @Override 28 | public String toString() { 29 | return null; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/types/Messages.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2016 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.lttng.scope.lami.types; 11 | 12 | /** 13 | * Message bundle for the package 14 | */ 15 | @SuppressWarnings("javadoc") 16 | public class Messages { 17 | 18 | static final String LamiBoolean_Yes = "Yes"; 19 | static final String LamiBoolean_No = "No"; 20 | 21 | static final String LamiData_Value = "Value"; 22 | static final String LamiData_UnitBytes = "bytes"; 23 | static final String LamiData_UnitBitsPerSecond = "bps"; 24 | 25 | static final String LamiIRQ_SoftIRQ = "SoftIRQ"; 26 | static final String LamiIRQ_HardwareIRQ = "IRQ"; 27 | 28 | private Messages() { 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/viewers/Messages.java: -------------------------------------------------------------------------------- 1 | ///******************************************************************************* 2 | // * Copyright (c) 2015, 2016 EfficiOS Inc., Alexandre Montplaisir 3 | // * 4 | // * All rights reserved. This program and the accompanying materials are 5 | // * made available under the terms of the Eclipse Public License v1.0 which 6 | // * accompanies this distribution, and is available at 7 | // * http://www.eclipse.org/legal/epl-v10.html 8 | // *******************************************************************************/ 9 | // 10 | //package org.lttng.scope.lami.ui.viewers; 11 | // 12 | //import org.eclipse.jdt.annotation.NonNullByDefault; 13 | //import org.eclipse.osgi.util.NLS; 14 | // 15 | ///** 16 | // * Message bundle for the package 17 | // * 18 | // * @noreference Messages class 19 | // */ 20 | //@NonNullByDefault({}) 21 | //@SuppressWarnings("javadoc") 22 | //public class Messages extends NLS { 23 | // 24 | // private static final String BUNDLE_NAME = Messages.class.getPackage().getName() + ".messages"; //$NON-NLS-1$ 25 | // 26 | // public static String LamiScatterViewer_by; 27 | // 28 | // public static String LamiXYChartViewer_CloseChartToolTip; 29 | // 30 | // public static String LamiViewer_DefaultValueName; 31 | // 32 | // static { 33 | // NLS.initializeMessages(BUNDLE_NAME, Messages.class); 34 | // } 35 | // 36 | // private Messages() { 37 | // } 38 | //} 39 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/lami/viewers/messages.properties: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Copyright (c) 2015, 2016 EfficiOS Inc. and others 3 | # 4 | # All rights reserved. This program and the accompanying materials 5 | # are made available under the terms of the Eclipse Public License v1.0 6 | # which accompanies this distribution, and is available at 7 | # http://www.eclipse.org/legal/epl-v10.html 8 | ############################################################################### 9 | 10 | 11 | LamiScatterViewer_by = by 12 | LamiXYChartViewer_CloseChartToolTip = Close chart 13 | LamiViewer_DefaultValueName = Value 14 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/views/context/ViewGroupContextManager.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.views.context; 11 | 12 | import com.efficios.jabberwocky.context.ViewGroupContext; 13 | 14 | /** 15 | * A common context for a group of views. Information is stored as properties, 16 | * and views can add listeners to get notified of value changes. 17 | * 18 | * @author Alexandre Montplaisir 19 | */ 20 | public class ViewGroupContextManager { 21 | 22 | /** 23 | * The context is a singleton for now, but the framework could be extended 24 | * to support several contexts (one per "view group") at the same time. 25 | */ 26 | private static final ViewGroupContext INSTANCE = new ViewGroupContext(); 27 | 28 | /** 29 | * For now, there is only a single view context for the framework. This 30 | * method returns this singleton instance. 31 | * 32 | * @return The view context 33 | */ 34 | public static ViewGroupContext getCurrent() { 35 | return INSTANCE; 36 | } 37 | 38 | /** 39 | * Cleanup all view group contexts. 40 | */ 41 | public static void cleanup() { 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/views/timeline/widgets/timegraph/Messages.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.views.timeline.widgets.timegraph; 11 | 12 | /** 13 | * Message bundle for the package 14 | * 15 | * @noreference Messages class 16 | */ 17 | @SuppressWarnings("javadoc") 18 | public class Messages { 19 | 20 | static final String statePropertyElement = "Element"; 21 | static final String statePropertyStateName = "State"; 22 | static final String statePropertyStartTime = "Start Time"; 23 | static final String statePropertyEndTime = "End Time"; 24 | static final String statePropertyDuration = "Duration"; 25 | 26 | 27 | private Messages() { 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/views/timeline/widgets/timegraph/toolbar/Messages.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc. 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.views.timeline.widgets.timegraph.toolbar; 11 | 12 | /** 13 | * Message bundle for the package 14 | */ 15 | @SuppressWarnings("javadoc") 16 | public class Messages { 17 | 18 | static final String arrowSeriesMenuButtonName = "Arrow Series"; 19 | 20 | static final String sfFilterModeMenuButtonName = "Filter Modes"; 21 | static final String sfSortingModeMenuButtonName = "Sorting Modes"; 22 | 23 | static final String sfZoomInActionDescription = "Zoom In"; 24 | static final String sfZoomOutActionDescription = "Zoom Out"; 25 | static final String sfZoomToFullRangeActionDescription = "Fit to Full Trace Range"; 26 | static final String sfZoomToSelectionActionDescription = "Fit to Selection"; 27 | 28 | private Messages() { 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/views/timeline/widgets/timegraph/toolbar/ZoomInButton.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.views.timeline.widgets.timegraph.toolbar; 11 | 12 | import javafx.scene.control.Button; 13 | import javafx.scene.control.Tooltip; 14 | import javafx.scene.image.Image; 15 | import javafx.scene.image.ImageView; 16 | import org.lttng.scope.common.jfx.JfxImageFactory; 17 | import org.lttng.scope.views.timeline.widgets.timegraph.TimeGraphWidget; 18 | 19 | /** 20 | * Button for zooming in. It should do the same action as one ctrl+mouse-scroll. 21 | * 22 | * @author Alexandre Montplaisir 23 | */ 24 | class ZoomInButton extends Button { 25 | 26 | private static final String ZOOM_IN_ICON_PATH = "/icons/toolbar/zoom_in.gif"; //$NON-NLS-1$ 27 | 28 | public ZoomInButton(TimeGraphWidget viewer) { 29 | Image icon = JfxImageFactory.getImageFromResource(ZOOM_IN_ICON_PATH); 30 | setGraphic(new ImageView(icon)); 31 | setTooltip(new Tooltip(Messages.sfZoomInActionDescription)); 32 | setOnAction(e -> { 33 | viewer.getZoomActions().zoom(true, false, null); 34 | }); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/views/timeline/widgets/timegraph/toolbar/ZoomOutButton.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.views.timeline.widgets.timegraph.toolbar; 11 | 12 | import javafx.scene.control.Button; 13 | import javafx.scene.control.Tooltip; 14 | import javafx.scene.image.Image; 15 | import javafx.scene.image.ImageView; 16 | import org.lttng.scope.common.jfx.JfxImageFactory; 17 | import org.lttng.scope.views.timeline.widgets.timegraph.TimeGraphWidget; 18 | 19 | /** 20 | * Button for zooming out. It should do the same action as one 21 | * ctrl+mouse-scroll. 22 | * 23 | * @author Alexandre Montplaisir 24 | */ 25 | class ZoomOutButton extends Button { 26 | 27 | private static final String ZOOM_OUT_ICON_PATH = "/icons/toolbar/zoom_out.gif"; //$NON-NLS-1$ 28 | 29 | public ZoomOutButton(TimeGraphWidget viewer) { 30 | Image icon = JfxImageFactory.getImageFromResource(ZOOM_OUT_ICON_PATH); 31 | setGraphic(new ImageView(icon)); 32 | setTooltip(new Tooltip(Messages.sfZoomOutActionDescription)); 33 | setOnAction(e -> { 34 | viewer.getZoomActions().zoom(false, false, null); 35 | }); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/views/timeline/widgets/timegraph/toolbar/modelconfig/Messages.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc. 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.views.timeline.widgets.timegraph.toolbar.modelconfig; 11 | 12 | /** 13 | * Message bundle for the package 14 | */ 15 | @SuppressWarnings("javadoc") 16 | public class Messages { 17 | 18 | static final String modelConfigButtonName = "Model Configuration"; 19 | static final String modelConfigDialogTitle = "Model Configuration"; 20 | static final String modelConfigDialogHeader = "State Model Configuration"; 21 | 22 | static final String modelConfigDialogRowHeaderState = "State"; 23 | static final String modelConfigDialogRowHeaderColor = "Color"; 24 | static final String modelConfigDialogRowHeaderLineThickness = "Line Thickness"; 25 | 26 | static final String modelConfigDialogResetDefaultsButton = "Reset Defaults"; 27 | 28 | private Messages() { 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/java/org/lttng/scope/views/timeline/widgets/timegraph/toolbar/nav/Messages.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc. 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.views.timeline.widgets.timegraph.toolbar.nav; 11 | 12 | /** 13 | * Message bundle for the package 14 | */ 15 | @SuppressWarnings("javadoc") 16 | public class Messages { 17 | 18 | static final String sfFollowStateChangesNavModeName = "Follow State Changes"; 19 | static final String sfFollowEventsNavModeName = "Follow Events"; 20 | static final String sfFollowArrowsNavModeName = "Follow Arrows"; 21 | static final String sfFollowBookmarksNavModeName = "Follow Bookmarks"; 22 | 23 | static final String sfNextEventJobName = "Searching for next matching event"; 24 | static final String sfPreviousEventJobName = "Searching for previous matching event"; 25 | 26 | private Messages() { 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/kotlin/org/lttng/scope/application/ScopeWindowManager.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.application 11 | 12 | import javafx.stage.Stage 13 | import java.util.* 14 | 15 | /** 16 | * Manager which will track opened windows (Stages) other than the main application window. 17 | * 18 | * Non-modal dialogs or windows created by the application should be registered here. That way, 19 | * if the user closes the main window, we should ensure the application exits by closing other 20 | * sub-windows. 21 | */ 22 | class ScopeWindowManager { 23 | 24 | private val trackedWindows: MutableSet = Collections.newSetFromMap(WeakHashMap()) 25 | 26 | @Synchronized 27 | fun registerWindow(window: Stage) { 28 | trackedWindows.add(window) 29 | } 30 | 31 | @Synchronized 32 | fun closeAll() { 33 | trackedWindows.forEach { it.close() } 34 | trackedWindows.clear() 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/kotlin/org/lttng/scope/application/task/ScopeTaskProgressView.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.application.task 11 | 12 | import com.efficios.jabberwocky.task.JabberwockyTask 13 | import com.efficios.jabberwocky.task.JabberwockyTaskManager 14 | import javafx.application.Platform 15 | import org.controlsfx.control.TaskProgressView 16 | 17 | class ScopeTaskProgressView : TaskProgressView>(), JabberwockyTaskManager.TaskManagerOutput { 18 | 19 | override fun taskRegistered(task: JabberwockyTask<*>) { 20 | Platform.runLater { tasks.add(task) } 21 | } 22 | 23 | override fun taskDeregistered(task: JabberwockyTask<*>) { 24 | Platform.runLater { tasks.remove(task) } 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/kotlin/org/lttng/scope/common/ChangeListenerHandler.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017-2018 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.common 11 | 12 | import javafx.beans.property.Property 13 | import javafx.beans.value.ChangeListener 14 | 15 | /** 16 | * Simple class encapsulating a {@link ChangeListener} and its target property. 17 | * It allows disabling and re-enabling the listener, by simply detaching it from 18 | * its target, on demand. The calling class then only has one class to manage 19 | * (this handler) instead of two. 20 | * 21 | * The listener will be added to the target (enabled) initially. 22 | * 23 | * @param 24 | * The type of property 25 | */ 26 | class ChangeListenerHandler(private val target: Property, 27 | private val listener: ChangeListener) { 28 | 29 | init { 30 | enable() 31 | } 32 | 33 | /** Attach the listener to its property, re-enabling it. */ 34 | fun enable() = target.addListener(listener) 35 | 36 | /** Detach the listener from its property, disabling it. */ 37 | fun disable() = target.removeListener(listener) 38 | } 39 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/kotlin/org/lttng/scope/common/LatestTaskExecutor.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016-2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.common 11 | 12 | import javafx.concurrent.Task 13 | import java.lang.ref.WeakReference 14 | import java.util.concurrent.Executors 15 | 16 | class LatestTaskExecutor { 17 | 18 | private val executor = Executors.newFixedThreadPool(2) 19 | // private val executor = Executors.newSingleThreadExecutor() 20 | 21 | /** The latest job that was scheduled in this queue. */ 22 | private var latestTask = WeakReference>(null) 23 | 24 | @Synchronized 25 | fun schedule(newTask: Task<*>) { 26 | /* Cancel the existing task. Here's hoping it cooperates and ends quickly! */ 27 | latestTask.get()?.cancel(false) 28 | 29 | /* Start the new job */ 30 | latestTask = WeakReference(newTask) 31 | executor.submit(newTask) 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/kotlin/org/lttng/scope/common/MathUtils.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017-2018 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.common 11 | 12 | import kotlin.math.ceil 13 | import kotlin.math.max 14 | import kotlin.math.min 15 | 16 | /** 17 | * Find the multiple of 'multipleOf' that is greater but closest to 18 | * 'this'. If 'this' is already a multiple of 'multipleOf', the same 19 | * value will be returned. 20 | * 21 | * @param multipleOf 22 | * We want the returned value to be a multiple of this number 23 | * @return The closest, greater multiple 24 | */ 25 | fun Long.roundToClosestHigherMultiple(multipleOf: Long): Long { 26 | return (ceil(this.toDouble() / multipleOf) * multipleOf).toLong() 27 | } 28 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/kotlin/org/lttng/scope/common/jfx/ActionButton.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.common.jfx 11 | 12 | import javafx.event.ActionEvent 13 | import javafx.scene.control.Button 14 | 15 | class ActionButton(label: String, action: (ActionEvent) -> Unit) : Button(label) { 16 | 17 | init { 18 | setOnAction(action) 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/kotlin/org/lttng/scope/common/jfx/CountingGridPane.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017-2018 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.common.jfx; 11 | 12 | import javafx.scene.Node; 13 | import javafx.scene.layout.GridPane; 14 | 15 | /** 16 | * Extension of a {@link GridPane} which tracks the number of inserted rows. 17 | * 18 | * Make sure you only add rows to the pane using {@link #appendRow(Node...)} or 19 | * else it will give weird results! 20 | * 21 | * @author Alexandre Montplaisir 22 | */ 23 | open class CountingGridPane : GridPane() { 24 | 25 | private var nbRows = 0 26 | 27 | /** 28 | * Add a row of nodes to this grid pane. Not thread-safe! 29 | * 30 | * @param children 31 | * The contents of the row 32 | */ 33 | fun appendRow(vararg children: Node) { 34 | addRow(nbRows++, *children) 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/kotlin/org/lttng/scope/common/jfx/JfxImageFactory.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017-2018 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.common.jfx 11 | 12 | import javafx.scene.image.Image 13 | import java.io.IOException 14 | 15 | /** 16 | * Factory for JavaFX [Image]s. This will allow caching the Image objects, 17 | * allowing any class to re-use already read images. 18 | * 19 | * @author Alexandre Montplaisir 20 | */ 21 | object JfxImageFactory { 22 | 23 | private val images = mutableMapOf() 24 | 25 | /** 26 | * Get the {@link Image} for a given path within the jar's resources. 27 | * 28 | * @param resourcePath 29 | * The path to the image resource. It should be a standard 30 | * .gif/.png/.jpg etc. file. 31 | * @return The corresponding Image. 32 | */ 33 | @JvmStatic 34 | @Synchronized 35 | fun getImageFromResource(resourcePath: String): Image? { 36 | images[resourcePath]?.let { return it } 37 | 38 | val image: Image = try { 39 | javaClass.getResourceAsStream(resourcePath).use { it?.let { Image(it) } ?: return null } 40 | } catch (e: IOException) { 41 | return null 42 | } 43 | 44 | images[resourcePath] = image 45 | return image 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/kotlin/org/lttng/scope/project/ProjectArea.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.project 11 | 12 | import javafx.scene.layout.BorderPane 13 | import org.lttng.scope.project.tree.ProjectTree 14 | 15 | class ProjectArea : BorderPane() { 16 | 17 | private val projectTree = ProjectTree() 18 | 19 | init { 20 | center = projectTree 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/kotlin/org/lttng/scope/project/ProjectManager.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.project 11 | 12 | import com.efficios.jabberwocky.project.TraceProject 13 | import org.lttng.scope.project.filter.EventFilterDefinition 14 | 15 | /** 16 | * Application-side manager that keeps track of active trace projects, and 17 | * the viewer-side state that we want to associate to them. 18 | */ 19 | object ProjectManager { 20 | 21 | private val projectStates = mutableMapOf, ProjectState>() 22 | 23 | @Synchronized 24 | fun getProjectState(project: TraceProject<*, *>): ProjectState { 25 | var state = projectStates[project] 26 | if (state == null) { 27 | state = ProjectState(project) 28 | projectStates.put(project, state) 29 | } 30 | return state 31 | } 32 | 33 | /** 34 | * Clear the "cache" for one given project. Usually should be called when said 35 | * project is destroyed. 36 | * 37 | * @param project The project to dispose of 38 | */ 39 | @Synchronized 40 | fun dispose(project: TraceProject<*, *>) { 41 | projectStates.remove(project); 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/kotlin/org/lttng/scope/project/filter/EventFilterDefinition.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.project.filter 11 | 12 | import com.efficios.jabberwocky.trace.event.TraceEvent 13 | import com.efficios.jabberwocky.views.common.ColorDefinition 14 | import com.efficios.jabberwocky.views.common.EventSymbolStyle 15 | import javafx.beans.property.BooleanProperty 16 | import javafx.beans.property.ReadOnlyObjectWrapper 17 | import javafx.beans.property.SimpleBooleanProperty 18 | import javafx.scene.Node 19 | import org.lttng.scope.common.jfx.JfxColorFactory 20 | 21 | data class EventFilterDefinition(val name: String, 22 | val color: ColorDefinition, 23 | val symbol: EventSymbolStyle, 24 | val predicate: (TraceEvent) -> Boolean) { 25 | 26 | private val enabledProperty: BooleanProperty = SimpleBooleanProperty(true) 27 | fun enabledProperty() = enabledProperty 28 | var isEnabled 29 | get() = enabledProperty.get() 30 | set(value) = enabledProperty.set(value) 31 | 32 | } 33 | 34 | fun EventFilterDefinition.getGraphic(): Node = this.symbol.getGraphic(ReadOnlyObjectWrapper(JfxColorFactory.getColorFromDef(color))) 35 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/kotlin/org/lttng/scope/project/tree/BookmarksTreeItem.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017-2018 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.project.tree 11 | 12 | import com.efficios.jabberwocky.project.TraceProject 13 | 14 | internal class BookmarksTreeItem : ProjectTreeItem(BOOKMARKS_NODE_NAME) { 15 | 16 | companion object { 17 | private const val BOOKMARKS_NODE_NAME = "Bookmarks" 18 | } 19 | 20 | override fun initForProject(project: TraceProject<*, *>) { 21 | // TODO 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/kotlin/org/lttng/scope/project/tree/TracesTreeItem.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017-2018 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.project.tree 11 | 12 | import com.efficios.jabberwocky.project.TraceProject 13 | import javafx.scene.control.TreeItem 14 | 15 | internal class TracesTreeItem : ProjectTreeItem(TRACES_NODE_NAME) { 16 | 17 | companion object { 18 | private const val TRACES_NODE_NAME = "Traces" 19 | } 20 | 21 | override fun initForProject(project: TraceProject<*, *>) { 22 | val traces = project.traceCollections.flatMap { it.traces } 23 | val newChildren = traces.map { TreeItem(it.name) } 24 | 25 | children.clear() 26 | children.addAll(newChildren) 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/kotlin/org/lttng/scope/views/timeline/NavigationAreaWidget.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.views.timeline 11 | 12 | interface NavigationAreaWidget : TimelineWidget 13 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/appicons/generate-icons.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # This script will generate all variants of the icon, based on: 4 | # png/scope_icon_256x256.png 5 | # 6 | # Requires: 7 | # - imagemagick ("convert" command) 8 | # - icnsutils ("png2icns" command) 9 | # - icoutils ("icotool" command) 10 | 11 | # generate the different sizes of PNG 12 | for i in 16 32 48 64 128 13 | do 14 | convert png/scope_icon_256x256.png -resize "$i"x"$i" png/scope_icon_"$i"x"$i".png 15 | done 16 | 17 | # generate the different BMPs 18 | # 19 | # Eclipse asks for "32-bit BMPs", but that doesn't seem to exist... unless it 20 | # means "BMP with an alpha channel". The commands below produce '-x8' BMPs with 21 | # no alpha channel, and '-x32' ones with a 1-bit apha channel. 22 | # Hopefully that works. 23 | mkdir bmp 24 | for i in 16 32 48 25 | do 26 | convert png/scope_icon_256x256.png -resize "$i"x"$i" -colors 256 bmp/scope_icon_"$i"x"$i"x8.bmp 27 | convert png/scope_icon_256x256.png -resize "$i"x"$i" -depth 32 bmp/scope_icon_"$i"x"$i"x32.bmp 28 | done 29 | convert png/scope_icon_256x256.png -depth 32 bmp/scope_icon_256x256x32.bmp 30 | convert bmp/*.bmp ico/scope_icon.ico 31 | rm bmp/*.bmp 32 | rmdir bmp 33 | 34 | # generate the XPM 35 | convert png/scope_icon_256x256.png xpm/scope_icon_256x256.xpm 36 | 37 | # generate the ICNS 38 | png2icns icns/scope_icon.icns png/scope_icon_256x256.png png/scope_icon_128x128.png png/scope_icon_32x32.png png/scope_icon_16x16.png 39 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/appicons/icns/scope_icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/appicons/icns/scope_icon.icns -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/appicons/ico/scope_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/appicons/ico/scope_icon.ico -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/appicons/png/scope_icon_128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/appicons/png/scope_icon_128x128.png -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/appicons/png/scope_icon_16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/appicons/png/scope_icon_16x16.png -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/appicons/png/scope_icon_256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/appicons/png/scope_icon_256x256.png -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/appicons/png/scope_icon_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/appicons/png/scope_icon_32x32.png -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/appicons/png/scope_icon_48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/appicons/png/scope_icon_48x48.png -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/appicons/png/scope_icon_64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/appicons/png/scope_icon_64x64.png -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/appicons/scope_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/appicons/scope_about.png -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/appicons/splash.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/appicons/splash.bmp -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/icons/attribution: -------------------------------------------------------------------------------- 1 |
Icons made by Smashicons from www.flaticon.com is licensed by CC 3.0 BY
2 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/icons/table/bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/icons/table/bottom.png -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/icons/table/pagedown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/icons/table/pagedown.png -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/icons/table/pageup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/icons/table/pageup.png -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/icons/table/top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/icons/table/top.png -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/icons/toolbar/config.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/icons/toolbar/config.gif -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/icons/toolbar/help.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/icons/toolbar/help.gif -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/icons/toolbar/legend.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/icons/toolbar/legend.gif -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/icons/toolbar/nav_arrow_back.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/icons/toolbar/nav_arrow_back.gif -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/icons/toolbar/nav_arrow_fwd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/icons/toolbar/nav_arrow_fwd.gif -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/icons/toolbar/nav_bookmark_back.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/icons/toolbar/nav_bookmark_back.gif -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/icons/toolbar/nav_bookmark_fwd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/icons/toolbar/nav_bookmark_fwd.gif -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/icons/toolbar/nav_event_back.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/icons/toolbar/nav_event_back.gif -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/icons/toolbar/nav_event_fwd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/icons/toolbar/nav_event_fwd.gif -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/icons/toolbar/nav_statechange_back.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/icons/toolbar/nav_statechange_back.gif -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/icons/toolbar/nav_statechange_fwd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/icons/toolbar/nav_statechange_fwd.gif -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/icons/toolbar/zoom_full.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/icons/toolbar/zoom_full.gif -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/icons/toolbar/zoom_in.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/icons/toolbar/zoom_in.gif -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/icons/toolbar/zoom_out.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/icons/toolbar/zoom_out.gif -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/icons/tracetype/lttng-ust.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/icons/tracetype/lttng-ust.png -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/icons/tracetype/lttng.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/lttng-scope-ui/src/main/resources/icons/tracetype/lttng.png -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/lttng-analyses-configs/cputop.properties: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Copyright (c) 2016 EfficiOS Inc. and others 3 | # 4 | # All rights reserved. This program and the accompanying materials 5 | # are made available under the terms of the Eclipse Public License v1.0 6 | # which accompanies this distribution, and is available at 7 | # http://www.eclipse.org/legal/epl-v10.html 8 | ############################################################################### 9 | 10 | name = LTTng-Analyses: CPU Usage Top 11 | command = lttng-cputop-mi 12 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/lttng-analyses-configs/index.properties: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Copyright (c) 2016 EfficiOS Inc. and others 3 | # 4 | # All rights reserved. This program and the accompanying materials 5 | # are made available under the terms of the Eclipse Public License v1.0 6 | # which accompanies this distribution, and is available at 7 | # http://www.eclipse.org/legal/epl-v10.html 8 | ############################################################################### 9 | 10 | analyses = cputop \ 11 | iolatencyfreq \ 12 | iolatencystats \ 13 | iolatencytop \ 14 | iolog \ 15 | iousagetop \ 16 | irqfreq \ 17 | irqlog \ 18 | irqstats \ 19 | memtop \ 20 | schedfreq \ 21 | schedlog \ 22 | schedstats \ 23 | schedtop \ 24 | syscallstats 25 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/lttng-analyses-configs/iolatencyfreq.properties: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Copyright (c) 2016 EfficiOS Inc. and others 3 | # 4 | # All rights reserved. This program and the accompanying materials 5 | # are made available under the terms of the Eclipse Public License v1.0 6 | # which accompanies this distribution, and is available at 7 | # http://www.eclipse.org/legal/epl-v10.html 8 | ############################################################################### 9 | 10 | name = LTTng-Analyses: I/O Latency Frequency Distribution 11 | command = lttng-iolatencyfreq-mi 12 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/lttng-analyses-configs/iolatencystats.properties: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Copyright (c) 2016 EfficiOS Inc. and others 3 | # 4 | # All rights reserved. This program and the accompanying materials 5 | # are made available under the terms of the Eclipse Public License v1.0 6 | # which accompanies this distribution, and is available at 7 | # http://www.eclipse.org/legal/epl-v10.html 8 | ############################################################################### 9 | 10 | name = LTTng-Analyses: I/O Latency Statistics 11 | command = lttng-iolatencystats-mi 12 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/lttng-analyses-configs/iolatencytop.properties: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Copyright (c) 2016 EfficiOS Inc. and others 3 | # 4 | # All rights reserved. This program and the accompanying materials 5 | # are made available under the terms of the Eclipse Public License v1.0 6 | # which accompanies this distribution, and is available at 7 | # http://www.eclipse.org/legal/epl-v10.html 8 | ############################################################################### 9 | 10 | name = LTTng-Analyses: I/O Latency Top 11 | command = lttng-iolatencytop-mi 12 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/lttng-analyses-configs/iolog.properties: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Copyright (c) 2016 EfficiOS Inc. and others 3 | # 4 | # All rights reserved. This program and the accompanying materials 5 | # are made available under the terms of the Eclipse Public License v1.0 6 | # which accompanies this distribution, and is available at 7 | # http://www.eclipse.org/legal/epl-v10.html 8 | ############################################################################### 9 | 10 | name = LTTng-Analyses: I/O Usage Log 11 | command = lttng-iolog-mi 12 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/lttng-analyses-configs/iousagetop.properties: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Copyright (c) 2016 EfficiOS Inc. and others 3 | # 4 | # All rights reserved. This program and the accompanying materials 5 | # are made available under the terms of the Eclipse Public License v1.0 6 | # which accompanies this distribution, and is available at 7 | # http://www.eclipse.org/legal/epl-v10.html 8 | ############################################################################### 9 | 10 | name = LTTng-Analyses: I/O Usage Top 11 | command = lttng-iousagetop-mi 12 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/lttng-analyses-configs/irqfreq.properties: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Copyright (c) 2016 EfficiOS Inc. and others 3 | # 4 | # All rights reserved. This program and the accompanying materials 5 | # are made available under the terms of the Eclipse Public License v1.0 6 | # which accompanies this distribution, and is available at 7 | # http://www.eclipse.org/legal/epl-v10.html 8 | ############################################################################### 9 | 10 | name = LTTng-Analyses: Interrupt Frequency Distribution 11 | command = lttng-irqfreq-mi 12 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/lttng-analyses-configs/irqlog.properties: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Copyright (c) 2016 EfficiOS Inc. and others 3 | # 4 | # All rights reserved. This program and the accompanying materials 5 | # are made available under the terms of the Eclipse Public License v1.0 6 | # which accompanies this distribution, and is available at 7 | # http://www.eclipse.org/legal/epl-v10.html 8 | ############################################################################### 9 | 10 | name = LTTng-Analyses: Interrupt Log 11 | command = lttng-irqlog-mi 12 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/lttng-analyses-configs/irqstats.properties: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Copyright (c) 2016 EfficiOS Inc. and others 3 | # 4 | # All rights reserved. This program and the accompanying materials 5 | # are made available under the terms of the Eclipse Public License v1.0 6 | # which accompanies this distribution, and is available at 7 | # http://www.eclipse.org/legal/epl-v10.html 8 | ############################################################################### 9 | 10 | name = LTTng-Analyses: Interrupt Statistics 11 | command = lttng-irqstats-mi 12 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/lttng-analyses-configs/memtop.properties: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Copyright (c) 2016 EfficiOS Inc. and others 3 | # 4 | # All rights reserved. This program and the accompanying materials 5 | # are made available under the terms of the Eclipse Public License v1.0 6 | # which accompanies this distribution, and is available at 7 | # http://www.eclipse.org/legal/epl-v10.html 8 | ############################################################################### 9 | 10 | name = LTTng-Analyses: Memory Usage Top 11 | command = lttng-memtop-mi 12 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/lttng-analyses-configs/schedfreq.properties: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Copyright (c) 2016 EfficiOS Inc. and others 3 | # 4 | # All rights reserved. This program and the accompanying materials 5 | # are made available under the terms of the Eclipse Public License v1.0 6 | # which accompanies this distribution, and is available at 7 | # http://www.eclipse.org/legal/epl-v10.html 8 | ############################################################################### 9 | 10 | name = LTTng-Analyses: Scheduling Latency Frequency Distribution 11 | command = lttng-schedfreq-mi 12 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/lttng-analyses-configs/schedlog.properties: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Copyright (c) 2016 EfficiOS Inc. and others 3 | # 4 | # All rights reserved. This program and the accompanying materials 5 | # are made available under the terms of the Eclipse Public License v1.0 6 | # which accompanies this distribution, and is available at 7 | # http://www.eclipse.org/legal/epl-v10.html 8 | ############################################################################### 9 | 10 | name = LTTng-Analyses: Scheduling Latency Log 11 | command = lttng-schedlog-mi 12 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/lttng-analyses-configs/schedstats.properties: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Copyright (c) 2016 EfficiOS Inc. and others 3 | # 4 | # All rights reserved. This program and the accompanying materials 5 | # are made available under the terms of the Eclipse Public License v1.0 6 | # which accompanies this distribution, and is available at 7 | # http://www.eclipse.org/legal/epl-v10.html 8 | ############################################################################### 9 | 10 | name = LTTng-Analyses: Scheduling Latency Statistics 11 | command = lttng-schedstats-mi 12 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/lttng-analyses-configs/schedtop.properties: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Copyright (c) 2016 EfficiOS Inc. and others 3 | # 4 | # All rights reserved. This program and the accompanying materials 5 | # are made available under the terms of the Eclipse Public License v1.0 6 | # which accompanies this distribution, and is available at 7 | # http://www.eclipse.org/legal/epl-v10.html 8 | ############################################################################### 9 | 10 | name = LTTng-Analyses: Scheduling Latency Top 11 | command = lttng-schedtop-mi 12 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/main/resources/lttng-analyses-configs/syscallstats.properties: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Copyright (c) 2016 EfficiOS Inc. and others 3 | # 4 | # All rights reserved. This program and the accompanying materials 5 | # are made available under the terms of the Eclipse Public License v1.0 6 | # which accompanies this distribution, and is available at 7 | # http://www.eclipse.org/legal/epl-v10.html 8 | ############################################################################### 9 | 10 | name = LTTng-Analyses: System Call Statistics 11 | command = lttng-syscallstats-mi 12 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/test/kotlin/org/lttng/scope/common/MathUtilsTest.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017-2018 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.common 11 | 12 | import org.assertj.core.api.Assertions.assertThat 13 | import org.junit.jupiter.api.Test 14 | 15 | /** 16 | * Tests for MathUtils. 17 | */ 18 | class MathUtilsTest { 19 | 20 | /** 21 | * Test the {@link MathUtils#roundToClosestHigherMultiple(long, long)} 22 | * method. 23 | */ 24 | @Test 25 | fun testRoundToClosestHigherMultiple() { 26 | assertThat(12L.roundToClosestHigherMultiple(10L)).isEqualTo(20L) 27 | assertThat(20L.roundToClosestHigherMultiple(20L)).isEqualTo(20L) 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /lttng-scope-ui/src/test/kotlin/org/lttng/scope/common/tests/StubProject.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017-2018 EfficiOS Inc., Alexandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials are 5 | * made available under the terms of the Eclipse Public License v1.0 which 6 | * accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | */ 9 | 10 | package org.lttng.scope.common.tests 11 | 12 | import com.efficios.jabberwocky.project.TraceProject 13 | import com.efficios.jabberwocky.trace.event.TraceEvent 14 | import com.google.common.io.MoreFiles 15 | import java.io.IOException 16 | import java.nio.file.Files 17 | import java.nio.file.Path 18 | 19 | class StubProject(trace: StubTrace) : AutoCloseable { 20 | 21 | private val projectPath: Path 22 | val traceProject: TraceProject 23 | 24 | init { 25 | try { 26 | projectPath = Files.createTempDirectory("stub-project"); 27 | } catch (e: IOException) { 28 | throw IllegalStateException(e) 29 | } 30 | traceProject = TraceProject.ofSingleTrace("stub-project", projectPath, trace) 31 | } 32 | 33 | override fun close() { 34 | try { 35 | MoreFiles.deleteRecursively(projectPath); 36 | } catch (e: IOException) { 37 | } 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /ttt/README.md: -------------------------------------------------------------------------------- 1 | TTT Test Traces Collection 2 | ========================== 3 | 4 | *TTT* (originally *tracecompass-test-traces*) is a set of CTF test 5 | traces for use in Trace Compass, LTTng Scope, and related projects. 6 | 7 | To build the package and install it in your local Maven repo, simply 8 | issue: 9 | 10 | mvn clean install 11 | 12 | 13 | Adding a new CTF test trace 14 | --------------------------- 15 | 16 | The modules follow the [Maven standard directory layout](https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html). 17 | 18 | To add a new CTF test trace, add it to the `ctf/src/main/resources` directory. 19 | Make sure it is not archived or anything, as this will be exposed as-is to the 20 | users. 21 | 22 | Then update the `ctf/src/main/java/.../CtfTestTrace.java` file accordingly to 23 | include the new trace. 24 | 25 | Make sure the parameters (event count, etc.) are correct! This project does not 26 | check those at the moment, but if they are incorrect they **will** fail some 27 | Trace Compass unit tests. This is a known issue. 28 | 29 | Finally, use `mvn versions:set` to bump the version number of the project. 30 | 31 | -------------------------------------------------------------------------------- /ttt/java-only-sources.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/java-only-sources.properties -------------------------------------------------------------------------------- /ttt/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 13 | 4.0.0 14 | 15 | 16 | org.lttng.scope 17 | lttng-scope-master 18 | 0.5.0-SNAPSHOT 19 | 20 | 21 | ttt 22 | Test trace collection 23 | 24 | -------------------------------------------------------------------------------- /ttt/src/main/resources/bug446190/channel0_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/bug446190/channel0_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/bug446190/channel0_1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/bug446190/channel0_1 -------------------------------------------------------------------------------- /ttt/src/main/resources/bug446190/channel0_2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/bug446190/channel0_2 -------------------------------------------------------------------------------- /ttt/src/main/resources/bug446190/channel0_3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/bug446190/channel0_3 -------------------------------------------------------------------------------- /ttt/src/main/resources/bug446190/index/channel0_0.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/bug446190/index/channel0_0.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/bug446190/index/channel0_1.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/bug446190/index/channel0_1.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/bug446190/index/channel0_2.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/bug446190/index/channel0_2.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/bug446190/index/channel0_3.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/bug446190/index/channel0_3.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/bug446190/metadata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/bug446190/metadata -------------------------------------------------------------------------------- /ttt/src/main/resources/context-switches/context-switches-kernel/channel-context-switches_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/context-switches/context-switches-kernel/channel-context-switches_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/context-switches/context-switches-kernel/metadata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/context-switches/context-switches-kernel/metadata -------------------------------------------------------------------------------- /ttt/src/main/resources/context-switches/context-switches-ust/channel0_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/context-switches/context-switches-ust/channel0_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/context-switches/context-switches-ust/metadata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/context-switches/context-switches-ust/metadata -------------------------------------------------------------------------------- /ttt/src/main/resources/ctfwriter_JF8nq3/custom_event_header_stream_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/ctfwriter_JF8nq3/custom_event_header_stream_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/ctfwriter_JF8nq3/empty_stream_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/ctfwriter_JF8nq3/empty_stream_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/ctfwriter_JF8nq3/event_before_stream_test_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/ctfwriter_JF8nq3/event_before_stream_test_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/ctfwriter_JF8nq3/test_stream_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/ctfwriter_JF8nq3/test_stream_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/cyg-profile/glxgears-cyg-profile-fast/channel0_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/cyg-profile/glxgears-cyg-profile-fast/channel0_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/cyg-profile/glxgears-cyg-profile-fast/channel0_1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/cyg-profile/glxgears-cyg-profile-fast/channel0_1 -------------------------------------------------------------------------------- /ttt/src/main/resources/cyg-profile/glxgears-cyg-profile-fast/channel0_2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/cyg-profile/glxgears-cyg-profile-fast/channel0_2 -------------------------------------------------------------------------------- /ttt/src/main/resources/cyg-profile/glxgears-cyg-profile-fast/channel0_3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/cyg-profile/glxgears-cyg-profile-fast/channel0_3 -------------------------------------------------------------------------------- /ttt/src/main/resources/cyg-profile/glxgears-cyg-profile-fast/metadata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/cyg-profile/glxgears-cyg-profile-fast/metadata -------------------------------------------------------------------------------- /ttt/src/main/resources/cyg-profile/glxgears-cyg-profile/channel0_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/cyg-profile/glxgears-cyg-profile/channel0_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/cyg-profile/glxgears-cyg-profile/channel0_1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/cyg-profile/glxgears-cyg-profile/channel0_1 -------------------------------------------------------------------------------- /ttt/src/main/resources/cyg-profile/glxgears-cyg-profile/channel0_2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/cyg-profile/glxgears-cyg-profile/channel0_2 -------------------------------------------------------------------------------- /ttt/src/main/resources/cyg-profile/glxgears-cyg-profile/channel0_3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/cyg-profile/glxgears-cyg-profile/channel0_3 -------------------------------------------------------------------------------- /ttt/src/main/resources/cyg-profile/glxgears-cyg-profile/metadata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/cyg-profile/glxgears-cyg-profile/metadata -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-synth-buildid-debuglink/test_stream_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-synth-buildid-debuglink/test_stream_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-synth-exec/test_stream_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-synth-exec/test_stream_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-synth-two-processes/test_stream_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-synth-two-processes/test_stream_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app2/channel0_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app2/channel0_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app2/channel0_1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app2/channel0_1 -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app2/channel0_2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app2/channel0_2 -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app2/channel0_3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app2/channel0_3 -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app2/index/channel0_0.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app2/index/channel0_0.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app2/index/channel0_1.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app2/index/channel0_1.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app2/index/channel0_2.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app2/index/channel0_2.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app2/index/channel0_3.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app2/index/channel0_3.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app2/metadata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app2/metadata -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app3/channel0_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app3/channel0_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app3/channel0_1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app3/channel0_1 -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app3/channel0_2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app3/channel0_2 -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app3/channel0_3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app3/channel0_3 -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app3/channel0_4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app3/channel0_4 -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app3/channel0_5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app3/channel0_5 -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app3/channel0_6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app3/channel0_6 -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app3/channel0_7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app3/channel0_7 -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app3/index/channel0_0.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app3/index/channel0_0.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app3/index/channel0_1.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app3/index/channel0_1.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app3/index/channel0_2.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app3/index/channel0_2.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app3/index/channel0_3.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app3/index/channel0_3.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app3/index/channel0_4.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app3/index/channel0_4.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app3/index/channel0_5.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app3/index/channel0_5.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app3/index/channel0_6.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app3/index/channel0_6.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app3/index/channel0_7.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app3/index/channel0_7.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app3/metadata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app3/metadata -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app4/channel0_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app4/channel0_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app4/channel0_1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app4/channel0_1 -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app4/channel0_2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app4/channel0_2 -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app4/channel0_3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app4/channel0_3 -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app4/index/channel0_0.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app4/index/channel0_0.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app4/index/channel0_1.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app4/index/channel0_1.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app4/index/channel0_2.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app4/index/channel0_2.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app4/index/channel0_3.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app4/index/channel0_3.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/debuginfo-test-app4/metadata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/debuginfo-test-app4/metadata -------------------------------------------------------------------------------- /ttt/src/main/resources/flipping-endianness/channel-context-switches_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/flipping-endianness/channel-context-switches_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/flipping-endianness/metadata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/flipping-endianness/metadata -------------------------------------------------------------------------------- /ttt/src/main/resources/funky_trace/test_stream_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/funky_trace/test_stream_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/hello-lost/channel1_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/hello-lost/channel1_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/hello-lost/channel1_1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/hello-lost/channel1_1 -------------------------------------------------------------------------------- /ttt/src/main/resources/hello-lost/channel1_2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/hello-lost/channel1_2 -------------------------------------------------------------------------------- /ttt/src/main/resources/hello-lost/channel1_3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/hello-lost/channel1_3 -------------------------------------------------------------------------------- /ttt/src/main/resources/hello-lost/metadata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/hello-lost/metadata -------------------------------------------------------------------------------- /ttt/src/main/resources/kernel/channel0_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/kernel/channel0_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/kernel/channel0_1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/kernel/channel0_1 -------------------------------------------------------------------------------- /ttt/src/main/resources/kernel/metadata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/kernel/metadata -------------------------------------------------------------------------------- /ttt/src/main/resources/kernel_vm/channel0_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/kernel_vm/channel0_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/kernel_vm/metadata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/kernel_vm/metadata -------------------------------------------------------------------------------- /ttt/src/main/resources/many-threads/channel0_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/many-threads/channel0_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/many-threads/channel0_1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/many-threads/channel0_1 -------------------------------------------------------------------------------- /ttt/src/main/resources/many-threads/channel0_2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/many-threads/channel0_2 -------------------------------------------------------------------------------- /ttt/src/main/resources/many-threads/channel0_3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/many-threads/channel0_3 -------------------------------------------------------------------------------- /ttt/src/main/resources/many-threads/channel0_4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/many-threads/channel0_4 -------------------------------------------------------------------------------- /ttt/src/main/resources/many-threads/channel0_5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/many-threads/channel0_5 -------------------------------------------------------------------------------- /ttt/src/main/resources/many-threads/channel0_6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/many-threads/channel0_6 -------------------------------------------------------------------------------- /ttt/src/main/resources/many-threads/channel0_7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/many-threads/channel0_7 -------------------------------------------------------------------------------- /ttt/src/main/resources/many-threads/index/channel0_0.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/many-threads/index/channel0_0.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/many-threads/index/channel0_1.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/many-threads/index/channel0_1.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/many-threads/index/channel0_2.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/many-threads/index/channel0_2.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/many-threads/index/channel0_3.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/many-threads/index/channel0_3.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/many-threads/index/channel0_4.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/many-threads/index/channel0_4.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/many-threads/index/channel0_5.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/many-threads/index/channel0_5.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/many-threads/index/channel0_6.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/many-threads/index/channel0_6.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/many-threads/index/channel0_7.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/many-threads/index/channel0_7.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/many-threads/metadata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/many-threads/metadata -------------------------------------------------------------------------------- /ttt/src/main/resources/memory/channel0_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/memory/channel0_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/memory/channel0_1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/memory/channel0_1 -------------------------------------------------------------------------------- /ttt/src/main/resources/memory/channel0_2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/memory/channel0_2 -------------------------------------------------------------------------------- /ttt/src/main/resources/memory/channel0_3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/memory/channel0_3 -------------------------------------------------------------------------------- /ttt/src/main/resources/memory/metadata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/memory/metadata -------------------------------------------------------------------------------- /ttt/src/main/resources/one-event/index/lttng_jul_channel_0.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/one-event/index/lttng_jul_channel_0.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/one-event/index/lttng_jul_channel_1.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/one-event/index/lttng_jul_channel_1.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/one-event/index/lttng_jul_channel_2.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/one-event/index/lttng_jul_channel_2.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/one-event/index/lttng_jul_channel_3.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/one-event/index/lttng_jul_channel_3.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/one-event/lttng_jul_channel_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/one-event/lttng_jul_channel_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/one-event/lttng_jul_channel_1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/one-event/lttng_jul_channel_1 -------------------------------------------------------------------------------- /ttt/src/main/resources/one-event/lttng_jul_channel_2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/one-event/lttng_jul_channel_2 -------------------------------------------------------------------------------- /ttt/src/main/resources/one-event/lttng_jul_channel_3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/one-event/lttng_jul_channel_3 -------------------------------------------------------------------------------- /ttt/src/main/resources/one-event/metadata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/one-event/metadata -------------------------------------------------------------------------------- /ttt/src/main/resources/perf-taskset2/perf_stream_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/perf-taskset2/perf_stream_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/synctraces/scp_dest/channel0_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/synctraces/scp_dest/channel0_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/synctraces/scp_dest/metadata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/synctraces/scp_dest/metadata -------------------------------------------------------------------------------- /ttt/src/main/resources/synctraces/scp_src/channel0_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/synctraces/scp_src/channel0_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/synctraces/scp_src/metadata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/synctraces/scp_src/metadata -------------------------------------------------------------------------------- /ttt/src/main/resources/trace2/channel0_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/trace2/channel0_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/trace2/channel0_1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/trace2/channel0_1 -------------------------------------------------------------------------------- /ttt/src/main/resources/trace2/metadata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/trace2/metadata -------------------------------------------------------------------------------- /ttt/src/main/resources/uneven-streams/channel0_0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/uneven-streams/channel0_0 -------------------------------------------------------------------------------- /ttt/src/main/resources/uneven-streams/channel0_1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/uneven-streams/channel0_1 -------------------------------------------------------------------------------- /ttt/src/main/resources/uneven-streams/channel0_2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/uneven-streams/channel0_2 -------------------------------------------------------------------------------- /ttt/src/main/resources/uneven-streams/channel0_3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/uneven-streams/channel0_3 -------------------------------------------------------------------------------- /ttt/src/main/resources/uneven-streams/index/channel0_0.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/uneven-streams/index/channel0_0.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/uneven-streams/index/channel0_1.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/uneven-streams/index/channel0_1.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/uneven-streams/index/channel0_2.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/uneven-streams/index/channel0_2.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/uneven-streams/index/channel0_3.idx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/uneven-streams/index/channel0_3.idx -------------------------------------------------------------------------------- /ttt/src/main/resources/uneven-streams/metadata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lttng/lttng-scope/939ecd9c696c7c64ecfd4a04d7ea5d02231ae73b/ttt/src/main/resources/uneven-streams/metadata -------------------------------------------------------------------------------- /ttt/src/test/java/org/lttng/scope/ttt/ctf/CtfTestTraceTest.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2015 Efficios Inc., Alexaandre Montplaisir 3 | * 4 | * All rights reserved. This program and the accompanying materials 5 | * are made available under the terms of the Eclipse Public License v1.0 6 | * which accompanies this distribution, and is available at 7 | * http://www.eclipse.org/legal/epl-v10.html 8 | *******************************************************************************/ 9 | 10 | package org.lttng.scope.ttt.ctf; 11 | 12 | import org.junit.jupiter.api.Test; 13 | 14 | import static org.junit.jupiter.api.Assertions.assertNotNull; 15 | 16 | /** 17 | * Basic tests for the CtfTestTraces 18 | */ 19 | class CtfTestTraceTest { 20 | 21 | /** 22 | * Test that all configured traces are present. 23 | */ 24 | @Test 25 | void testTracesExist() { 26 | for (CtfTestTrace trace : CtfTestTrace.values()) { 27 | assertNotNull(trace.getTraceURL()); 28 | } 29 | } 30 | } 31 | --------------------------------------------------------------------------------