Skip to content
This repository was archived by the owner on Mar 8, 2020. It is now read-only.

Commit 968c849

Browse files
committed
Secures invalid order parameters and adds test for it
Invalid means a number out of the set of accepted ones for iterator orders Signed-off-by: ncordon <[email protected]>
1 parent 9ad80cc commit 968c849

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

src/main/scala/org/bblfsh/client/v2/BblfshClient.scala

+4-4
Original file line numberDiff line numberDiff line change
@@ -209,17 +209,17 @@ object BblfshClient {
209209
implicit class BblfshClientMethods(val client: BblfshClient) {
210210
def filter(node: NodeExt, query: String) = BblfshClient.filter(node, query)
211211
def filter(node: JNode, query: String) = BblfshClient.filter(node, query)
212-
def iterator(node: NodeExt, treeOrder: Int) = BblfshClient.iterator(node, treeOrder)
213-
def iterator(node: JNode, treeOrder: Int) = BblfshClient.iterator(node, treeOrder)
212+
def iterator(node: NodeExt, treeOrder: TreeOrder) = BblfshClient.iterator(node, treeOrder)
213+
def iterator(node: JNode, treeOrder: TreeOrder) = BblfshClient.iterator(node, treeOrder)
214214
}
215215

216216
/** Factory method for iterator over an external/native node */
217-
def iterator(node: NodeExt, treeOrder: Int): Libuast.UastIterExt = {
217+
def iterator(node: NodeExt, treeOrder: TreeOrder): Libuast.UastIterExt = {
218218
Libuast.UastIterExt(node, treeOrder)
219219
}
220220

221221
/** Factory method for iterator over an managed node */
222-
def iterator(node: JNode, treeOrder: Int): Libuast.UastIter = {
222+
def iterator(node: JNode, treeOrder: TreeOrder): Libuast.UastIter = {
223223
Libuast.UastIter(node, treeOrder)
224224
}
225225

src/main/scala/org/bblfsh/client/v2/package.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ package object v2 {
3030
}
3131

3232
/** Allow to use methods
33-
* f(order: UastOrder) as f(0), f(1), f(2), ...
33+
* f(order: TreeOrder) as f(0), f(1), f(2), ...
3434
* g(order: Int) as g(AnyOrder), g(PreOrder), g(PostOrder)
3535
*/
3636
implicit def orderToInt(order: TreeOrder): Int = {

src/test/scala/org/bblfsh/client/v2/libuast/IteratorManagedTest.scala

+11
Original file line numberDiff line numberDiff line change
@@ -180,4 +180,15 @@ class IteratorManagedTest extends FlatSpec
180180

181181
posIter.close()
182182
}
183+
184+
"Managed UAST iterator with invalid numeric order" should "use AnyOrder" in {
185+
val invalidNumIter = BblfshClient.iterator(testTree, -1)
186+
val anyOrderIter = BblfshClient.iterator(testTree, AnyOrder)
187+
val nodesNumIter = getNodeTypes(invalidNumIter)
188+
val nodesAnyIter = getNodeTypes(anyOrderIter)
189+
nodesNumIter shouldEqual nodesAnyIter
190+
191+
invalidNumIter.close()
192+
anyOrderIter.close()
193+
}
183194
}

0 commit comments

Comments
 (0)