Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
lttng.control: Fix listing UST domains if there are no logger agents
Browse files Browse the repository at this point in the history
Don't fail if logger agents are not available (e.g. JUL).

[Fixed] listing UST domains if there are no logger agents

Fixes eclipse-tracecompass#192

Signed-off-by: Bernd Hufmann <[email protected]>
bhufmann committed Dec 9, 2024
1 parent 1801704 commit 79eca12
Showing 7 changed files with 508 additions and 7 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**********************************************************************
* Copyright (c) 2014 Ericsson
* Copyright (c) 2014, 2024 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License 2.0 which
@@ -21,6 +21,7 @@

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.runtime.NullProgressMonitor;
@@ -30,6 +31,7 @@
import org.eclipse.tracecompass.internal.lttng2.control.core.model.IEventInfo;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.ILoggerInfo;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.ISessionInfo;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.IUstProviderInfo;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.LogLevelType;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceChannelOutputType;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceDomainType;
@@ -60,6 +62,7 @@ public class LTTngControlServiceMiTest extends LTTngControlServiceTest {
private static final String SCEN_ENABLING_JUL_LOGGERS = "EnableJulLoggers";
private static final String SCEN_ENABLING_LOG4J_LOGGERS = "EnableLog4jLoggers";
private static final String SCEN_ENABLING_PYTHON_LOGGERS = "EnablePythonLoggers";
private static final String SCEN_GET_UST_PROVIDER4 = "GetUstProvider4";

@Override
protected ILttngControlService getControlService() {
@@ -463,4 +466,23 @@ public void testEnablePythonLoggers() {
fail(e.toString());
}
}

@Test
@Override
public void testUstProvider4() {
try {
fShell.setScenario(SCEN_GET_UST_PROVIDER4);
List<IUstProviderInfo> providers = fService.getUstProvider();

assertNotNull(providers);
assertEquals(2, providers.size());

// Verify that there are no logger ust provider
Optional<IUstProviderInfo> optional = providers.stream().filter(provider -> provider.getLoggers().size() > 0).findFirst();
assertTrue(optional.isEmpty());

} catch (ExecutionException e) {
fail(e.toString());
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**********************************************************************
* Copyright (c) 2012, 2015 Ericsson
* Copyright (c) 2012, 2024 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License 2.0 which
@@ -746,6 +746,10 @@ public void testGetUstProvider3() {
}
}

@Test
public void testUstProvider4() {
// Nothing to do because loggers are only supported with MI.
}

@Test
public void testGetKernelProviderNoUst1() {
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
####################################################################
# Copyright (c) 2014, 2016 Ericsson
# Copyright (c) 2014, 2024 Ericsson
#
# All rights reserved. This program and the accompanying materials are
# made available under the terms of the Eclipse Public License 2.0 which
@@ -1334,6 +1334,160 @@ lttng --mi xml list -p
</command>
</COMMAND_OUTPUT>
</SCENARIO>

####################################################################
# Scenario: Test "lttng list -u -f" with missing logger agents
####################################################################
<SCENARIO>
GetUstProvider4
<COMMAND_INPUT>
lttng --mi xml list -u -f
</COMMAND_INPUT>
<COMMAND_RESULT>
0
</COMMAND_RESULT>
<COMMAND_OUTPUT>
<?xml version="1.0" encoding="UTF-8"?>
<command xmlns="http://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://lttng.org/xml/ns/lttng-mi http://lttng.org/xml/schemas/lttng-mi/3/lttng-mi-3.0.xsd" schemaVersion="3.0">
<name>list</name>
<output>
<domains>
<domain>
<type>UST</type>
<buffer_type>PER_PID</buffer_type>
<pids>
<pid>
<id>9379</id>
<name>/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello</name>
<events>
<event>
<name>ust_tests_hello:tptest_sighandler</name>
<type>TRACEPOINT</type>
<enabled>true</enabled>
<loglevel>TRACE_DEBUG_MODULE</loglevel>
<loglevel_type>ALL</loglevel_type>
<event_fields/>
</event>
<event>
<name>ust_tests_hello:tptest</name>
<type>TRACEPOINT</type>
<enabled>true</enabled>
<loglevel>TRACE_INFO</loglevel>
<loglevel_type>ALL</loglevel_type>
<event_fields>
<event_field>
<name>doublefield</name>
<type>FLOAT</type>
<nowrite>0</nowrite>
</event_field>
<event_field>
<name>floatfield</name>
<type>FLOAT</type>
<nowrite>0</nowrite>
</event_field>
<event_field>
<name>stringfield</name>
<type>STRING</type>
<nowrite>0</nowrite>
</event_field>
</event_fields>
</event>
</events>
</pid>
<pid>
<id>4852</id>
<name>/home/user/git/lttng-ust/tests/hello.cxx/.libs/lt-hello</name>
<events>
<event>
<name>ust_tests_hello:tptest_sighandler</name>
<type>TRACEPOINT</type>
<enabled>true</enabled>
<loglevel>TRACE_WARNING</loglevel>
<loglevel_type>ALL</loglevel_type>
<event_fields/>
</event>
<event>
<name>ust_tests_hello:tptest</name>
<type>TRACEPOINT</type>
<enabled>true</enabled>
<loglevel>TRACE_DEBUG_FUNCTION</loglevel>
<loglevel_type>ALL</loglevel_type>
<event_fields>
<event_field>
<name>doublefield</name>
<type>FLOAT</type>
<nowrite>0</nowrite>
</event_field>
<event_field>
<name>floatfield</name>
<type>FLOAT</type>
<nowrite>0</nowrite>
</event_field>
<event_field>
<name>stringfield</name>
<type>STRING</type>
<nowrite>0</nowrite>
</event_field>
</event_fields>
</event>
</events>
</pid>
</pids>
</domain>
</domains>
</output>
</command>
</COMMAND_OUTPUT>
<COMMAND_INPUT>
lttng --mi xml list -j
</COMMAND_INPUT>
<COMMAND_RESULT>
1
</COMMAND_RESULT>
<COMMAND_OUTPUT>
<?xml version="1.0" encoding="UTF-8"?>
<command xmlns="http://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://lttng.org/xml/ns/lttng-mi http://lttng.org/xml/schemas/lttng-mi/3/lttng-mi-3.0.xsd" schemaVersion="3.0">
<name>list</name>
<output/>
</command>
<COMMAND_ERROR_OUTPUT>
Error: Unable to list jul events: Session daemon agent tracing is disabled
</COMMAND_ERROR_OUTPUT>
</COMMAND_OUTPUT>
<COMMAND_INPUT>
lttng --mi xml list -l
</COMMAND_INPUT>
<COMMAND_RESULT>
1
</COMMAND_RESULT>
<COMMAND_OUTPUT>
<?xml version="1.0" encoding="UTF-8"?>
<command xmlns="http://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://lttng.org/xml/ns/lttng-mi http://lttng.org/xml/schemas/lttng-mi/3/lttng-mi-3.0.xsd" schemaVersion="3.0">
<name>list</name>
<output/>
</command>
<COMMAND_ERROR_OUTPUT>
Error: Unable to list log4j events: Session daemon agent tracing is disabled
</COMMAND_ERROR_OUTPUT>
</COMMAND_OUTPUT>
<COMMAND_INPUT>
lttng --mi xml list -p
</COMMAND_INPUT>
<COMMAND_RESULT>
1
</COMMAND_RESULT>
<COMMAND_OUTPUT>
<?xml version="1.0" encoding="UTF-8"?>
<command xmlns="http://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://lttng.org/xml/ns/lttng-mi http://lttng.org/xml/schemas/lttng-mi/3/lttng-mi-3.0.xsd" schemaVersion="3.0">
<name>list</name>
<output/>
</command>
<COMMAND_ERROR_OUTPUT>
Error: Unable to list python events: Session daemon agent tracing is disabled
</COMMAND_ERROR_OUTPUT>
</COMMAND_OUTPUT>
</SCENARIO>

####################################################################
# Scenario: Test "lttng create <session>
####################################################################
Loading

0 comments on commit 79eca12

Please sign in to comment.