Skip to content

Commit 5125973

Browse files
committed
Python: Add test case for .copy() as a copy step
1 parent 7ce7b58 commit 5125973

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

python/ql/test/query-tests/Functions/ModificationOfParameterWithDefault/ModificationOfParameterWithDefault.expected

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ edges
4040
| test.py:195:28:195:28 | ControlFlowNode for x | test.py:181:28:181:28 | ControlFlowNode for x | provenance | |
4141
| test.py:197:18:197:18 | ControlFlowNode for x | test.py:198:28:198:28 | ControlFlowNode for x | provenance | |
4242
| test.py:198:28:198:28 | ControlFlowNode for x | test.py:181:28:181:28 | ControlFlowNode for x | provenance | |
43+
| test.py:222:26:222:26 | ControlFlowNode for x | test.py:223:9:223:9 | ControlFlowNode for x | provenance | |
44+
| test.py:223:5:223:5 | ControlFlowNode for y | test.py:224:5:224:5 | ControlFlowNode for y | provenance | |
45+
| test.py:223:9:223:9 | ControlFlowNode for x | test.py:223:9:223:16 | ControlFlowNode for Attribute() | provenance | |
46+
| test.py:223:9:223:16 | ControlFlowNode for Attribute() | test.py:223:5:223:5 | ControlFlowNode for y | provenance | |
4347
nodes
4448
| test.py:2:12:2:12 | ControlFlowNode for l | semmle.label | ControlFlowNode for l |
4549
| test.py:3:5:3:5 | ControlFlowNode for l | semmle.label | ControlFlowNode for l |
@@ -107,6 +111,11 @@ nodes
107111
| test.py:195:28:195:28 | ControlFlowNode for x | semmle.label | ControlFlowNode for x |
108112
| test.py:197:18:197:18 | ControlFlowNode for x | semmle.label | ControlFlowNode for x |
109113
| test.py:198:28:198:28 | ControlFlowNode for x | semmle.label | ControlFlowNode for x |
114+
| test.py:222:26:222:26 | ControlFlowNode for x | semmle.label | ControlFlowNode for x |
115+
| test.py:223:5:223:5 | ControlFlowNode for y | semmle.label | ControlFlowNode for y |
116+
| test.py:223:9:223:9 | ControlFlowNode for x | semmle.label | ControlFlowNode for x |
117+
| test.py:223:9:223:16 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() |
118+
| test.py:224:5:224:5 | ControlFlowNode for y | semmle.label | ControlFlowNode for y |
110119
subpaths
111120
#select
112121
| test.py:3:5:3:5 | ControlFlowNode for l | test.py:2:12:2:12 | ControlFlowNode for l | test.py:3:5:3:5 | ControlFlowNode for l | This expression mutates a $@. | test.py:2:12:2:12 | ControlFlowNode for l | default value |
@@ -138,3 +147,4 @@ subpaths
138147
| test.py:185:9:185:9 | ControlFlowNode for x | test.py:197:18:197:18 | ControlFlowNode for x | test.py:185:9:185:9 | ControlFlowNode for x | This expression mutates a $@. | test.py:197:18:197:18 | ControlFlowNode for x | default value |
139148
| test.py:187:9:187:9 | ControlFlowNode for x | test.py:194:18:194:18 | ControlFlowNode for x | test.py:187:9:187:9 | ControlFlowNode for x | This expression mutates a $@. | test.py:194:18:194:18 | ControlFlowNode for x | default value |
140149
| test.py:187:9:187:9 | ControlFlowNode for x | test.py:197:18:197:18 | ControlFlowNode for x | test.py:187:9:187:9 | ControlFlowNode for x | This expression mutates a $@. | test.py:197:18:197:18 | ControlFlowNode for x | default value |
150+
| test.py:224:5:224:5 | ControlFlowNode for y | test.py:222:26:222:26 | ControlFlowNode for x | test.py:224:5:224:5 | ControlFlowNode for y | This expression mutates a $@. | test.py:222:26:222:26 | ControlFlowNode for x | default value |

python/ql/test/query-tests/Functions/ModificationOfParameterWithDefault/test.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,3 +216,9 @@ def flow_from_within_deepcopy_fp():
216216
def flow_through_deepcopy_fp(x=[]):
217217
y = deepcopy(x)
218218
y.append(1)
219+
220+
# Use of copy method:
221+
222+
def flow_through_copy_fp(x=[]):
223+
y = x.copy()
224+
y.append(1) #$ SPURIOUS: modification=y

0 commit comments

Comments
 (0)