@@ -14,20 +14,20 @@ void test1() {
1414 String x = taint ();
1515
1616 ImmutableSet <String > xs = ImmutableSet .of (x , "y" , "z" );
17- sink (xs .asList ());
17+ sink (xs .asList ()); // $numTaintFlow=1
1818
1919 ImmutableSet <String > ys = ImmutableSet .of ("a" , "b" , "c" );
2020
21- sink (Sets .filter (Sets .union (xs , ys ), y -> true ));
21+ sink (Sets .filter (Sets .union (xs , ys ), y -> true )); // $numTaintFlow=1
2222
23- sink (Sets .newHashSet ("a" , "b" , "c" , "d" , x ));
23+ sink (Sets .newHashSet ("a" , "b" , "c" , "d" , x )); // $numTaintFlow=1
2424 }
2525
2626 void test2 () {
27- sink (ImmutableList .of (taint (), taint (), taint (), taint ())); // expect 4 alerts
28- sink (ImmutableMap .of (taint (), taint (), taint (), taint ())); // expect 2 alerts
29- sink (ImmutableMultimap .of (taint (), taint (), taint (), taint ())); // expect 2 alerts
30- sink (ImmutableTable .of (taint (),taint (), taint ())); // expect 1 alert
27+ sink (ImmutableList .of (taint (), taint (), taint (), taint ())); // $numTaintFlow=4
28+ sink (ImmutableMap .of (taint (), taint (), taint (), taint ())); // $numTaintFlow=2
29+ sink (ImmutableMultimap .of (taint (), taint (), taint (), taint ())); // $numTaintFlow=2
30+ sink (ImmutableTable .of (taint (),taint (), taint ())); // $numTaintFlow=1
3131 }
3232
3333 void test3 () {
@@ -38,20 +38,20 @@ void test3() {
3838 b .add ("a" );
3939 sink (b );
4040 b .add (x );
41- sink (b .build ());
41+ sink (b .build ()); // $numTaintFlow=1
4242
4343 b = ImmutableList .builder ();
4444
4545 b .add ("a" ).add (x );
46- sink (b .build ());
46+ sink (b .build ()); // $numTaintFlow=1
4747
48- sink (ImmutableList .builder ().add ("a" ).add (x ).build ());
48+ sink (ImmutableList .builder ().add ("a" ).add (x ).build ()); // $numTaintFlow=1
4949
5050 ImmutableMap .Builder <String , String > b2 = ImmutableMap .builder ();
5151 b2 .put (x ,"v" );
5252 sink (b2 );
5353 b2 .put ("k" ,x );
54- sink (b2 .build ());
54+ sink (b2 .build ()); // $numTaintFlow=1
5555 }
5656
5757 void test4 (Table <String , String , String > t1 , Table <String , String , String > t2 , Table <String , String , String > t3 ) {
@@ -61,62 +61,62 @@ void test4(Table<String, String, String> t1, Table<String, String, String> t2, T
6161 t1 .put ("r" , x , "v" );
6262 sink (t1 );
6363 t1 .put ("r" , "c" , x );
64- sink (t1 );
65- sink (t1 .row ("r" ));
64+ sink (t1 ); // $numTaintFlow=1
65+ sink (t1 .row ("r" )); // $numTaintFlow=1
6666
6767 t2 .putAll (t1 );
6868 for (Table .Cell <String ,String ,String > c : t2 .cellSet ()) {
69- sink (c .getValue ());
69+ sink (c .getValue ()); // $numTaintFlow=1
7070 }
7171
72- sink (t1 .remove ("r" , "c" ));
72+ sink (t1 .remove ("r" , "c" )); // $numTaintFlow=1
7373
7474 t3 .row ("r" ).put ("c" , x );
75- sink (t3 ); // Not detected
75+ sink (t3 ); // MISSING:$numTaintFlow=1
7676 }
7777
7878 void test4 (Multimap <String , String > m1 , Multimap <String , String > m2 , Multimap <String , String > m3 ,
7979 Multimap <String , String > m4 , Multimap <String , String > m5 ){
8080 String x = taint ();
8181 m1 .put ("k" , x );
82- sink (m1 );
83- sink (m1 .get ("k" ));
82+ sink (m1 ); // $numTaintFlow=1
83+ sink (m1 .get ("k" )); // $numTaintFlow=1
8484
8585 m2 .putAll ("k" , ImmutableList .of ("a" , x , "b" ));
86- sink (m2 );
86+ sink (m2 ); // $numTaintFlow=1
8787
8888 m3 .putAll (m1 );
89- sink (m3 );
89+ sink (m3 ); // $numTaintFlow=1
9090
9191 m4 .replaceValues ("k" , m1 .replaceValues ("k" , ImmutableList .of ("a" )));
9292 for (Map .Entry <String , String > e : m4 .entries ()) {
93- sink (e .getValue ());
93+ sink (e .getValue ()); // $numTaintFlow=1
9494 }
9595
9696 m5 .asMap ().get ("k" ).add (x );
97- sink (m5 ); // Not detected
97+ sink (m5 ); // MISSING:$numTaintFlow=1
9898 }
9999
100100 void test5 (Comparator <String > comp , SortedSet <String > sorS , SortedMap <String , String > sorM ) {
101101 ImmutableSortedSet <String > s = ImmutableSortedSet .of (taint ());
102102
103- sink (s );
104- sink (ImmutableSortedSet .copyOf (s ));
105- sink (ImmutableSortedSet .copyOf (comp , s ));
103+ sink (s ); // $numTaintFlow=1
104+ sink (ImmutableSortedSet .copyOf (s )); // $numTaintFlow=1
105+ sink (ImmutableSortedSet .copyOf (comp , s )); // $numTaintFlow=1
106106
107107 sorS .add (taint ());
108- sink (ImmutableSortedSet .copyOfSorted (sorS ));
108+ sink (ImmutableSortedSet .copyOfSorted (sorS )); // $numTaintFlow=1
109109
110- sink (ImmutableList .sortedCopyOf (s ));
111- sink (ImmutableList .sortedCopyOf (comp , s ));
110+ sink (ImmutableList .sortedCopyOf (s )); // $numTaintFlow=1
111+ sink (ImmutableList .sortedCopyOf (comp , s )); // $numTaintFlow=1
112112
113113 ImmutableSortedMap <String , String > m = ImmutableSortedMap .of ("k" , taint ());
114114
115- sink (m );
116- sink (ImmutableSortedMap .copyOf (m ));
117- sink (ImmutableSortedMap .copyOf (m , comp ));
115+ sink (m ); // $numTaintFlow=1
116+ sink (ImmutableSortedMap .copyOf (m )); // $numTaintFlow=1
117+ sink (ImmutableSortedMap .copyOf (m , comp )); // $numTaintFlow=1
118118
119119 sorM .put ("k" , taint ());
120- sink (ImmutableSortedMap .copyOfSorted (sorM ));
120+ sink (ImmutableSortedMap .copyOfSorted (sorM )); // $numTaintFlow=1
121121 }
122122}
0 commit comments