protected static final String EVENT_NAME = "EventName";
protected static final String RETRIEVER_NAME_1 = "Retriever1";
- protected static final String RETRIEVER_NAME_2 = "Retriever2";
+ protected static final String RETRIEVER_NAME_2 = "some.retriever_2";
private static final String CONTEXT_NAME = ContextInfoRetrieverStubs.CONTEXT_NAME;
cim = ContextInfoManager.getInstance();
} catch (SecurityException | IOException e) {
/* The native library is not available! */
- fail();
+ fail(e.getMessage());
}
session = ILttngSession.createSession(null, getDomain());
}
* trace output.
*/
private static void testContextPresentInTrace(List<String> traceOutput, String retrieverName, String contextName, String contextValue) {
- String fullString = "_app_" + retrieverName + "_" + contextName + " = " + contextValue;
+ String traceRetrieverName = convertToNameInTrace(retrieverName);
+ String traceContextName = convertToNameInTrace(contextName);
+
+ String fullString = "_app_" + traceRetrieverName + "_" + traceContextName + " = " + contextValue;
traceOutput.forEach(line -> assertTrue(line.contains(fullString)));
}
* trace output
*/
private static void testContextNotPresentInTrace(List<String> traceOutput, String retrieverName, String contextName) {
- String fullString = "_app_" + retrieverName + "_" + contextName;
+ String traceRetrieverName = convertToNameInTrace(retrieverName);
+ String traceContextName = convertToNameInTrace(contextName);
+
+ String fullString = "_app_" + traceRetrieverName + "_" + traceContextName;
traceOutput.forEach(line -> assertFalse(line.contains(fullString)));
}
+ /**
+ * LTTng accepts periods in context names, but ends up printing them as
+ * underscores in the trace, so the metadata grammar remains valid.
+ */
+ private static String convertToNameInTrace(String name) {
+ return name.replace('.', '_');
+ }
+
/**
* Test that if no retrievers are declared, no context info is passed at
* all.
assertFalse(output.isEmpty());
/* Test that context name is there but value is not */
- testContextPresentInTrace(output, RETRIEVER_NAME_1, CONTEXT_NAME, "{ none = { } } }");
+ testContextPresentInTrace(output, RETRIEVER_NAME_1, CONTEXT_NAME, "{ { } } }");
}
/**
/* Test that context name + value are present */
testContextPresentInTrace(output, RETRIEVER_NAME_1, CONTEXT_NAME,
- "{ string = \"" + ContextInfoRetrieverStubs.STRING_VALUE + "\" }");
+ "{ \"" + ContextInfoRetrieverStubs.STRING_VALUE + "\" }");
assertTrue(cim.unregisterContextInfoRetriever(RETRIEVER_NAME_1));
}
/* Test that only retriever-name-2 is present, with no value */
testContextNotPresentInTrace(output, RETRIEVER_NAME_1, CONTEXT_NAME);
- testContextPresentInTrace(output, RETRIEVER_NAME_2, CONTEXT_NAME, "{ none = { } } }");
+ testContextPresentInTrace(output, RETRIEVER_NAME_2, CONTEXT_NAME, "{ { } } }");
assertTrue(cim.unregisterContextInfoRetriever(RETRIEVER_NAME_1));
}
/* Test that only retriever-name-1 is present, name + value */
testContextPresentInTrace(output, RETRIEVER_NAME_1, CONTEXT_NAME,
- "{ string = \"" + ContextInfoRetrieverStubs.STRING_VALUE + "\" }");
+ "{ \"" + ContextInfoRetrieverStubs.STRING_VALUE + "\" }");
testContextNotPresentInTrace(output, RETRIEVER_NAME_2, CONTEXT_NAME);
assertTrue(cim.unregisterContextInfoRetriever(RETRIEVER_NAME_1));
/* Test that both contexts are present, but only retriever-1's has a value */
testContextPresentInTrace(output, RETRIEVER_NAME_1, CONTEXT_NAME,
- "{ string = \"" + ContextInfoRetrieverStubs.STRING_VALUE + "\" }");
- testContextPresentInTrace(output, RETRIEVER_NAME_2, CONTEXT_NAME, "{ none = { } } }");
+ "{ \"" + ContextInfoRetrieverStubs.STRING_VALUE + "\" }");
+ testContextPresentInTrace(output, RETRIEVER_NAME_2, CONTEXT_NAME, "{ { } } }");
assertTrue(cim.unregisterContextInfoRetriever(RETRIEVER_NAME_1));
}
assertTrue(cim.registerContextInfoRetriever(RETRIEVER_NAME_1, ContextInfoRetrieverStubs.NULL_RETRIEVER));
List<String> output = enableContextAndTrace();
- testContextPresentInTrace(output, RETRIEVER_NAME_1, CONTEXT_NAME, "{ none = { } } }");
+ testContextPresentInTrace(output, RETRIEVER_NAME_1, CONTEXT_NAME, "{ { } } }");
assertTrue(cim.unregisterContextInfoRetriever(RETRIEVER_NAME_1));
}
List<String> output = enableContextAndTrace();
testContextPresentInTrace(output, RETRIEVER_NAME_1, CONTEXT_NAME,
- "{ int32 = " + ContextInfoRetrieverStubs.INTEGER_VALUE + " } }");
+ "{ " + ContextInfoRetrieverStubs.INTEGER_VALUE + " } }");
assertTrue(cim.unregisterContextInfoRetriever(RETRIEVER_NAME_1));
}
List<String> output = enableContextAndTrace();
testContextPresentInTrace(output, RETRIEVER_NAME_1, CONTEXT_NAME,
- "{ int64 = " + ContextInfoRetrieverStubs.LONG_VALUE + " } }");
+ "{ " + ContextInfoRetrieverStubs.LONG_VALUE + " } }");
assertTrue(cim.unregisterContextInfoRetriever(RETRIEVER_NAME_1));
}
List<String> output = enableContextAndTrace();
testContextPresentInTrace(output, RETRIEVER_NAME_1, CONTEXT_NAME,
- "{ double = " + ContextInfoRetrieverStubs.DOUBLE_VALUE + " } }");
+ "{ " + ContextInfoRetrieverStubs.DOUBLE_VALUE + " } }");
assertTrue(cim.unregisterContextInfoRetriever(RETRIEVER_NAME_1));
}
List<String> output = enableContextAndTrace();
testContextPresentInTrace(output, RETRIEVER_NAME_1, CONTEXT_NAME,
- "{ string = \"" + ContextInfoRetrieverStubs.CHARACTER_VALUE + "\" } }");
+ "{ \"" + ContextInfoRetrieverStubs.CHARACTER_VALUE + "\" } }");
assertTrue(cim.unregisterContextInfoRetriever(RETRIEVER_NAME_1));
}
List<String> output = enableContextAndTrace();
testContextPresentInTrace(output, RETRIEVER_NAME_1, CONTEXT_NAME,
- "{ float = " + ContextInfoRetrieverStubs.FLOAT_VALUE + " } }");
+ "{ " + ContextInfoRetrieverStubs.FLOAT_VALUE + " } }");
assertTrue(cim.unregisterContextInfoRetriever(RETRIEVER_NAME_1));
}
List<String> output = enableContextAndTrace();
testContextPresentInTrace(output, RETRIEVER_NAME_1, CONTEXT_NAME,
- "{ int8 = " + ContextInfoRetrieverStubs.BYTE_VALUE + " } }");
+ "{ " + ContextInfoRetrieverStubs.BYTE_VALUE + " } }");
assertTrue(cim.unregisterContextInfoRetriever(RETRIEVER_NAME_1));
}
List<String> output = enableContextAndTrace();
testContextPresentInTrace(output, RETRIEVER_NAME_1, CONTEXT_NAME,
- "{ int16 = " + ContextInfoRetrieverStubs.SHORT_VALUE + " } }");
+ "{ " + ContextInfoRetrieverStubs.SHORT_VALUE + " } }");
assertTrue(cim.unregisterContextInfoRetriever(RETRIEVER_NAME_1));
}
assertTrue(cim.registerContextInfoRetriever(RETRIEVER_NAME_1, ContextInfoRetrieverStubs.BOOLEAN_TRUE_RETRIEVER));
List<String> output = enableContextAndTrace();
- testContextPresentInTrace(output, RETRIEVER_NAME_1, CONTEXT_NAME, "{ int8 = 1 } }");
+ testContextPresentInTrace(output, RETRIEVER_NAME_1, CONTEXT_NAME, "{ 1 } }");
assertTrue(cim.unregisterContextInfoRetriever(RETRIEVER_NAME_1));
}
assertTrue(cim.registerContextInfoRetriever(RETRIEVER_NAME_1, ContextInfoRetrieverStubs.BOOLEAN_FALSE_RETRIEVER));
List<String> output = enableContextAndTrace();
- testContextPresentInTrace(output, RETRIEVER_NAME_1, CONTEXT_NAME, "{ int8 = 0 } }");
+ testContextPresentInTrace(output, RETRIEVER_NAME_1, CONTEXT_NAME, "{ 0 } }");
assertTrue(cim.unregisterContextInfoRetriever(RETRIEVER_NAME_1));
}
List<String> output = enableContextAndTrace();
testContextPresentInTrace(output, RETRIEVER_NAME_1, CONTEXT_NAME,
- "{ string = \"" + ContextInfoRetrieverStubs.STRING_VALUE + "\" } }");
+ "{ \"" + ContextInfoRetrieverStubs.STRING_VALUE + "\" } }");
assertTrue(cim.unregisterContextInfoRetriever(RETRIEVER_NAME_1));
}
List<String> output = enableContextAndTrace();
testContextPresentInTrace(output, RETRIEVER_NAME_1, CONTEXT_NAME,
- "{ string = \"" + ContextInfoRetrieverStubs.OBJECT_VALUE.toString() + "\" } }");
+ "{ \"" + ContextInfoRetrieverStubs.OBJECT_VALUE.toString() + "\" } }");
assertTrue(cim.unregisterContextInfoRetriever(RETRIEVER_NAME_1));
}
assertTrue(cim.registerContextInfoRetriever(RETRIEVER_NAME_1, ContextInfoRetrieverStubs.STRING_RETRIEVER));
assertTrue(session.enableEvent(EVENT_NAME, null, false,
- "$app." + RETRIEVER_NAME_1 + '.' + CONTEXT_NAME + "==\"" + ContextInfoRetrieverStubs.STRING_VALUE + '\"'));
+ "$app." + RETRIEVER_NAME_1 + ':' + CONTEXT_NAME + "==\"" + ContextInfoRetrieverStubs.STRING_VALUE + '\"'));
assertTrue(session.start());
sendEventsToLoggers();
assertTrue(cim.registerContextInfoRetriever(RETRIEVER_NAME_1, ContextInfoRetrieverStubs.STRING_RETRIEVER));
assertTrue(session.enableEvent(EVENT_NAME, null, false,
- "$app." + RETRIEVER_NAME_1 + '.' + CONTEXT_NAME + "!=\"" + ContextInfoRetrieverStubs.STRING_VALUE + '\"'));
+ "$app." + RETRIEVER_NAME_1 + ':' + CONTEXT_NAME + "!=\"" + ContextInfoRetrieverStubs.STRING_VALUE + '\"'));
assertTrue(session.enableAppContext(RETRIEVER_NAME_1, CONTEXT_NAME));
assertTrue(session.start());
assertTrue(cim.registerContextInfoRetriever(RETRIEVER_NAME_1, ContextInfoRetrieverStubs.STRING_RETRIEVER));
assertTrue(session.enableEvent(EVENT_NAME, null, false,
- "$app." + RETRIEVER_NAME_1 + '.' + CONTEXT_NAME + "==\"" + ContextInfoRetrieverStubs.STRING_VALUE + '\"'));
+ "$app." + RETRIEVER_NAME_1 + ':' + CONTEXT_NAME + "==\"" + ContextInfoRetrieverStubs.STRING_VALUE + '\"'));
assertTrue(session.enableAppContext(RETRIEVER_NAME_1, CONTEXT_NAME));
assertTrue(session.start());
assertFalse(output.isEmpty());
testContextPresentInTrace(output, RETRIEVER_NAME_1, CONTEXT_NAME,
- "{ string = \"" + ContextInfoRetrieverStubs.STRING_VALUE + "\" } }");
+ "{ \"" + ContextInfoRetrieverStubs.STRING_VALUE + "\" } }");
assertTrue(cim.unregisterContextInfoRetriever(RETRIEVER_NAME_1));
}