mirror of
https://github.com/github/codeql.git
synced 2026-04-29 02:35:15 +02:00
Java: Add test for Stream.collect.
This commit is contained in:
30
java/ql/test/library-tests/dataflow/stream-collect/A.java
Normal file
30
java/ql/test/library-tests/dataflow/stream-collect/A.java
Normal 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
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
import TestUtilities.InlineFlowTest
|
||||
Reference in New Issue
Block a user