Java: Add test for Stream.collect.

This commit is contained in:
Anders Schack-Mulligen
2022-10-12 15:33:24 +02:00
parent 8c7b6d6f20
commit 5b8fa3f8f9
3 changed files with 31 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
import java.util.*;
import java.util.stream.*;
public class A {
String source() { return "source"; }
void sink(Object o) { }
void m() {
String[] xs = new String[] { source() };
Stream<String> s = Arrays.stream(xs);
sink(s.collect(Collectors.maxBy(null)).get()); // $ hasValueFlow
sink(s.collect(Collectors.minBy(null)).get()); // $ hasValueFlow
sink(s.collect(Collectors.toCollection(null)).iterator().next()); // $ hasValueFlow
sink(s.collect(Collectors.toList()).get(0)); // $ hasValueFlow
sink(s.collect(Collectors.toSet()).iterator().next()); // $ hasValueFlow
sink(s.collect(Collectors.toUnmodifiableList()).get(0)); // $ hasValueFlow
sink(s.collect(Collectors.toUnmodifiableSet()).iterator().next()); // $ hasValueFlow
// we don't attempt to cover weird things like this:
sink(s.collect(true ? Collectors.toList() : null).get(0)); // $ MISSING: hasValueFlow
sink(s.collect(Collectors.joining())); // $ hasTaintFlow
sink(s.collect(Collectors.groupingBy(null)).get(null).get(0)); // $ hasValueFlow
sink(s.collect(Collectors.groupingByConcurrent(null)).get(null).get(0)); // $ hasValueFlow
sink(s.collect(Collectors.partitioningBy(null)).get(null).get(0)); // $ hasValueFlow
}
}

View File

@@ -0,0 +1 @@
import TestUtilities.InlineFlowTest