use of org.eclipse.tracecompass.tmf.core.filter.model.TmfFilterMatchesNode in project tracecompass by tracecompass.
the class TmfFilterHelperTest method testInputFilterMatches.
/**
* Test conversion of matches filters to regex
*/
@Test
public void testInputFilterMatches() {
ITmfEventAspect<@NonNull Object> aspect = TmfBaseAspects.getContentsAspect().forField(FIELD1_NAME);
/* Test a simple match */
String expected = "\"" + FIELD1_NAME + "\" " + IFilterStrings.MATCHES + " \".*other.*\"";
TmfFilterMatchesNode matchesFilter = new TmfFilterMatchesNode(null);
matchesFilter.setEventAspect(aspect);
matchesFilter.setRegex(".*other.*");
Predicate<Multimap<String, Object>> predicate = getRegex(matchesFilter, expected);
assertFalse(predicate.test(fObjectMap1));
assertFalse(predicate.test(fObjectMap2));
assertTrue(predicate.test(fObjectMap3));
/* Test the negation */
matchesFilter.setNot(true);
predicate = getRegex(matchesFilter, notRegex(expected));
assertTrue(predicate.test(fObjectMap1));
assertTrue(predicate.test(fObjectMap2));
assertFalse(predicate.test(fObjectMap3));
/* Test a wildcard regex, should match with the presence of the field */
expected = "\"" + FIELD1_NAME + "\" " + IFilterStrings.PRESENT;
matchesFilter.setRegex(".*");
matchesFilter.setNot(false);
predicate = getRegex(matchesFilter, expected);
assertTrue(predicate.test(fObjectMap1));
assertFalse(predicate.test(fObjectMap2));
assertTrue(predicate.test(fObjectMap3));
/* Test the negation of present */
matchesFilter.setNot(true);
predicate = getRegex(matchesFilter, notRegex(expected));
assertFalse(predicate.test(fObjectMap1));
assertTrue(predicate.test(fObjectMap2));
assertFalse(predicate.test(fObjectMap3));
}
use of org.eclipse.tracecompass.tmf.core.filter.model.TmfFilterMatchesNode in project tracecompass by tracecompass.
the class TmfFilterHelperTest method testInputRegexMatches.
/**
* Test a regex with matches
*/
@Test
public void testInputRegexMatches() {
ITmfEventAspect<@NonNull Object> contentAspect = TmfBaseAspects.getContentsAspect().forField(FIELD1_NAME);
String regex = FIELD1_NAME + " matches .*other.*";
ITmfFilter filter = getFilter(regex);
// verify the main root node
assertTrue(filter instanceof TmfFilterRootNode);
TmfFilterRootNode node = (TmfFilterRootNode) filter;
assertEquals(1, node.getChildrenCount());
ITmfFilterTreeNode child = node.getChild(0);
assertTrue(child instanceof TmfFilterMatchesNode);
// verify the equals node
TmfFilterMatchesNode equalsNode = (TmfFilterMatchesNode) child;
assertEquals(contentAspect, equalsNode.getEventAspect());
assertEquals(".*other.*", equalsNode.getRegex());
// Test expected behavior on events
assertFalse(filter.matches(fEvent1));
assertFalse(filter.matches(fEvent2));
assertTrue(filter.matches(fEvent3));
}
use of org.eclipse.tracecompass.tmf.core.filter.model.TmfFilterMatchesNode in project tracecompass by tracecompass.
the class TmfFilterHelperTest method testInputRegexMatchesNot.
/**
* Test a regex with a not matches
*/
@Test
public void testInputRegexMatchesNot() {
ITmfEventAspect<@NonNull Object> contentAspect = TmfBaseAspects.getContentsAspect().forField(FIELD1_NAME);
String regex = "!(" + FIELD1_NAME + " matches .*other.*)";
ITmfFilter filter = getFilter(regex);
// verify the main root node
assertTrue(filter instanceof TmfFilterRootNode);
TmfFilterRootNode node = (TmfFilterRootNode) filter;
assertEquals(1, node.getChildrenCount());
ITmfFilterTreeNode child = node.getChild(0);
assertTrue(child instanceof TmfFilterMatchesNode);
// verify the equals node
TmfFilterMatchesNode equalsNode = (TmfFilterMatchesNode) child;
assertEquals(contentAspect, equalsNode.getEventAspect());
assertEquals(".*other.*", equalsNode.getRegex());
// Test expected behavior on events
assertTrue(filter.matches(fEvent1));
assertTrue(filter.matches(fEvent2));
assertFalse(filter.matches(fEvent3));
}
use of org.eclipse.tracecompass.tmf.core.filter.model.TmfFilterMatchesNode in project tracecompass by tracecompass.
the class TmfFilterHelperTest method testInputRegexNoField.
/**
* Test a regex with no parameter
*/
@Test
public void testInputRegexNoField() {
String regex = "afield";
ITmfFilter filter = getFilter(regex);
assertTrue(filter instanceof TmfFilterRootNode);
TmfFilterRootNode node = (TmfFilterRootNode) filter;
assertEquals(1, node.getChildrenCount());
ITmfFilterTreeNode child = node.getChild(0);
assertTrue(child instanceof TmfFilterOrNode);
// Verify the orNode
TmfFilterOrNode orNode = (TmfFilterOrNode) child;
ITmfTrace trace = STUB_TRACE;
assertNotNull(trace);
Iterable<@NonNull ITmfEventAspect<?>> eventAspects = trace.getEventAspects();
// Verify that each child is a matches node and there's one per aspect
assertEquals(Iterables.size(eventAspects), orNode.getChildrenCount());
for (int i = 0; i < orNode.getChildrenCount(); i++) {
assertTrue(orNode.getChild(i) instanceof TmfFilterMatchesNode);
}
for (ITmfEventAspect<?> aspect : eventAspects) {
// Find a contains condition for each aspect
ITmfFilterTreeNode[] children = orNode.getChildren();
TmfFilterMatchesNode found = null;
for (int i = 0; i < children.length; i++) {
TmfFilterMatchesNode childFilter = (TmfFilterMatchesNode) children[i];
if (aspect.equals(childFilter.getEventAspect())) {
found = childFilter;
break;
}
}
assertNotNull("found aspect " + aspect.getName(), found);
assertEquals(regex, found.getRegex());
}
// Test expected behavior on events
assertTrue(filter.matches(fEvent1));
assertFalse(filter.matches(fEvent2));
assertTrue(filter.matches(fEvent3));
}
use of org.eclipse.tracecompass.tmf.core.filter.model.TmfFilterMatchesNode in project tracecompass by tracecompass.
the class TmfFilterHelperTest method testInputRegexPresent.
/**
* Test a regex with present
*/
@Test
public void testInputRegexPresent() {
ITmfEventAspect<@NonNull Object> aspect = TmfBaseAspects.getContentsAspect().forField(FIELD1_NAME);
String regex = FIELD1_NAME + " present";
ITmfFilter filter = getFilter(regex);
// verify the main root node
assertTrue(filter instanceof TmfFilterRootNode);
TmfFilterRootNode node = (TmfFilterRootNode) filter;
assertEquals(1, node.getChildrenCount());
ITmfFilterTreeNode child = node.getChild(0);
assertTrue(child instanceof TmfFilterMatchesNode);
// verify the equals node
TmfFilterMatchesNode equalsNode = (TmfFilterMatchesNode) child;
assertEquals(aspect, equalsNode.getEventAspect());
assertEquals(".*", equalsNode.getRegex());
// Test expected behavior on events
assertTrue(filter.matches(fEvent1));
assertFalse(filter.matches(fEvent2));
assertTrue(filter.matches(fEvent3));
}
Aggregations