Skip to content

Commit

Permalink
Update the extra traces end-to-end test
Browse files Browse the repository at this point in the history
Summary: As titled.

Reviewed By: arthaud

Differential Revision: D48003345

fbshipit-source-id: 0d7f389517c0acbc181a5a032e67dc0edb408477
  • Loading branch information
Anwesh Tuladhar authored and facebook-github-bot committed Aug 9, 2023
1 parent 3d31385 commit c3ed4e2
Show file tree
Hide file tree
Showing 4 changed files with 169 additions and 69 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,21 @@ public static Object hopToSource1() {
return hopToSource2();
}

public static Object hopToTransformT1(Object o) {
return TaintTransforms.transformT1(o);
}

public static Object hopToSource2() {
Object source = hopToSource3();
// Expect extra_trace to transformT1().
return TaintTransforms.transformT1(source);

int rand = new Random().nextInt(2);
if (rand == 0) {
// Expect extra_trace to hopTotransformT1().
return hopToTransformT1(source);
} else {
// Expect extra_trace to transformT1().
return TaintTransforms.transformT1(source);
}
}

public static Object hopToSource3() {
Expand All @@ -30,8 +41,8 @@ public static Object hopPropagation1(Object o) {

public static Object hopPropagation2(Object o) {
// Expect extra_trace to transformT2().
Object o1 = TaintTransforms.transformT2(o);
return hopPropagation3(o1);
Object withT2 = TaintTransforms.transformT2(o);
return hopPropagation3(withT2);
}

public static Object hopPropagation3(Object o) {
Expand Down Expand Up @@ -59,26 +70,27 @@ public static void hopToSink2(Object o) {

public static void hopToSink3(Object o) {
int rand = new Random().nextInt(2);
Object o1;
Object withTransform;
if (rand == 0) {
// Expect extra_trace to transformT1().
o1 = TaintTransforms.transformT1(o);
// Expect extra_trace to hopTotransformT1().
withTransform = hopToTransformT1(o);
} else {
// Expect extra_trace to transformT2().
o1 = TaintTransforms.transformT2(o);
withTransform = TaintTransforms.transformT2(o);
}
hopToSink4(o1);
hopToSink4(withTransform);
}

public static void hopToSink4(Object o) {
Origin.sink(o);
}

public static void testExtraTraces() {
Object s = hopToSource1();
Object fromHopToSource = hopToSource1();
// Expect extra_trace to transformT1().
Object t = TaintTransforms.transformT1(s);
Object tt = hopPropagation1(t);
hopToSink1(tt);
Object withT1 = TaintTransforms.transformT1(fromHopToSource);
// expect extra_trace to hopPropagation1().
Object withT1AndHopPropagation = hopPropagation1(withT1);
hopToSink1(withT1AndHopPropagation);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@
"static" :
[
"Lcom/facebook/marianatrench/integrationtests/ExtraTraces;.hopToSink4:(Ljava/lang/Object;)V",
"Lcom/facebook/marianatrench/integrationtests/TaintTransforms;.transformT1:(Ljava/lang/Object;)Ljava/lang/Object;",
"Lcom/facebook/marianatrench/integrationtests/ExtraTraces;.hopToTransformT1:(Ljava/lang/Object;)Ljava/lang/Object;",
"Lcom/facebook/marianatrench/integrationtests/TaintTransforms;.transformT2:(Ljava/lang/Object;)Ljava/lang/Object;"
]
},
Expand All @@ -290,6 +290,7 @@
"static" :
[
"Lcom/facebook/marianatrench/integrationtests/ExtraTraces;.hopToSource3:()Ljava/lang/Object;",
"Lcom/facebook/marianatrench/integrationtests/ExtraTraces;.hopToTransformT1:(Ljava/lang/Object;)Ljava/lang/Object;",
"Lcom/facebook/marianatrench/integrationtests/TaintTransforms;.transformT1:(Ljava/lang/Object;)Ljava/lang/Object;"
]
},
Expand All @@ -300,6 +301,13 @@
"Lcom/facebook/marianatrench/integrationtests/TaintTransforms;.getNewSource:()Ljava/lang/Object;"
]
},
"Lcom/facebook/marianatrench/integrationtests/ExtraTraces;.hopToTransformT1:(Ljava/lang/Object;)Ljava/lang/Object;" :
{
"static" :
[
"Lcom/facebook/marianatrench/integrationtests/TaintTransforms;.transformT1:(Ljava/lang/Object;)Ljava/lang/Object;"
]
},
"Lcom/facebook/marianatrench/integrationtests/ExtraTraces;.testExtraTraces:()V" :
{
"static" :
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,11 @@
[
"Lcom/facebook/marianatrench/integrationtests/ExtraTraces;.hopToSource2:()Ljava/lang/Object;"
],
"Lcom/facebook/marianatrench/integrationtests/ExtraTraces;.hopToTransformT1:(Ljava/lang/Object;)Ljava/lang/Object;" :
[
"Lcom/facebook/marianatrench/integrationtests/ExtraTraces;.hopToSink3:(Ljava/lang/Object;)V",
"Lcom/facebook/marianatrench/integrationtests/ExtraTraces;.hopToSource2:()Ljava/lang/Object;"
],
"Lcom/facebook/marianatrench/integrationtests/Origin;.sink:(Ljava/lang/Object;)V" :
[
"Lcom/facebook/marianatrench/integrationtests/ExtraTraces;.hopToSink4:(Ljava/lang/Object;)V",
Expand Down Expand Up @@ -164,8 +169,8 @@
"Lcom/facebook/marianatrench/integrationtests/TaintTransforms;.transformT1:(Ljava/lang/Object;)Ljava/lang/Object;" :
[
"Lcom/facebook/marianatrench/integrationtests/ExtraTraces;.hopPropagation4:(Ljava/lang/Object;)Ljava/lang/Object;",
"Lcom/facebook/marianatrench/integrationtests/ExtraTraces;.hopToSink3:(Ljava/lang/Object;)V",
"Lcom/facebook/marianatrench/integrationtests/ExtraTraces;.hopToSource2:()Ljava/lang/Object;",
"Lcom/facebook/marianatrench/integrationtests/ExtraTraces;.hopToTransformT1:(Ljava/lang/Object;)Ljava/lang/Object;",
"Lcom/facebook/marianatrench/integrationtests/ExtraTraces;.testExtraTraces:()V",
"Lcom/facebook/marianatrench/integrationtests/TaintTransforms;.hopSinkWithTransformsT1T2:(Ljava/lang/Object;)V",
"Lcom/facebook/marianatrench/integrationtests/TaintTransforms;.propagateAlternateTransforms:(Lcom/facebook/marianatrench/integrationtests/Data;)Lcom/facebook/marianatrench/integrationtests/Data;",
Expand Down
Loading

0 comments on commit c3ed4e2

Please sign in to comment.