Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1279,7 +1279,7 @@ class SecuribenchTestSuite extends FunSuite {
assert(svfa.reportConflictsSVG().size == expectedConflicts)
}

ignore(
test(
"in the class StrongUpdates3 we should detect 0 conflict of a simple strong update test case"
) {
val testName = "StrongUpdates3"
Expand All @@ -1290,9 +1290,30 @@ class SecuribenchTestSuite extends FunSuite {
"doGet"
)
svfa.buildSparseValueFlowGraph()
println(svfa.svgToDotModel())
assert(svfa.reportConflictsSVG().size == expectedConflicts)
}

/**
* WHY IS IT FAILING
*
* The current logic "maybe" can not differentiate
* when an object attribute is overwrite so it keeps linked to the old one value.
*
* i.e:
* w.value = name
* w.value = "abc"
*
* However, I not sure if this behavior is OK, because StrongUpdates4 shows a case
* with almost the same logic of overwriting an object attribute, and it is labeled as PASSED
*
* this.value = name
* this.value = "abc"
*
* PD: the only difference is that StrongUpdates4 uses "this", while StrongUpdates3 uses
* an "object". May it be the root of the issue?
*/

// FLAKY: It only fails in the Github action pipeline
ignore(
"in the class StrongUpdates4 we should detect 1 conflict of a simple strong update test case"
Expand All @@ -1305,6 +1326,7 @@ class SecuribenchTestSuite extends FunSuite {
"doGet"
)
svfa.buildSparseValueFlowGraph()
println(svfa.svgToDotModel())
assert(svfa.reportConflictsSVG().size == expectedConflicts)
}

Expand All @@ -1322,6 +1344,12 @@ class SecuribenchTestSuite extends FunSuite {
assert(svfa.reportConflictsSVG().size == expectedConflicts)
}

/**
* WHY IS IT FAILING
*
* Same case as StrongUpdates3
*/

/**
*
* EXTRA TESTs
Expand Down
Loading