From d2164e16d168f903aa89456f8e78f9bf8348a08b Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 12 Jan 2021 13:33:03 +0000 Subject: [PATCH] Switch NoSQL tests to use inline expectations --- .../semmle/go/frameworks/NoSQL/Query.expected | 14 ---------- .../semmle/go/frameworks/NoSQL/Query.ql | 16 ++++++++++- .../semmle/go/frameworks/NoSQL/main.go | 28 +++++++++---------- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/ql/test/library-tests/semmle/go/frameworks/NoSQL/Query.expected b/ql/test/library-tests/semmle/go/frameworks/NoSQL/Query.expected index 109ad99673b..e69de29bb2d 100644 --- a/ql/test/library-tests/semmle/go/frameworks/NoSQL/Query.expected +++ b/ql/test/library-tests/semmle/go/frameworks/NoSQL/Query.expected @@ -1,14 +0,0 @@ -| main.go:24:22:24:29 | pipeline | -| main.go:27:27:27:32 | filter | -| main.go:29:23:29:28 | filter | -| main.go:30:22:30:27 | filter | -| main.go:32:32:32:37 | filter | -| main.go:35:17:35:22 | filter | -| main.go:36:20:36:25 | filter | -| main.go:37:29:37:34 | filter | -| main.go:38:30:38:35 | filter | -| main.go:39:29:39:34 | filter | -| main.go:45:23:45:28 | filter | -| main.go:47:23:47:28 | filter | -| main.go:48:22:48:27 | filter | -| main.go:49:18:49:25 | pipeline | diff --git a/ql/test/library-tests/semmle/go/frameworks/NoSQL/Query.ql b/ql/test/library-tests/semmle/go/frameworks/NoSQL/Query.ql index c5a89c0b8ef..eb51664650b 100644 --- a/ql/test/library-tests/semmle/go/frameworks/NoSQL/Query.ql +++ b/ql/test/library-tests/semmle/go/frameworks/NoSQL/Query.ql @@ -1,3 +1,17 @@ import go +import TestUtilities.InlineExpectationsTest -select any(NoSQL::Query q) +class NoSQLQueryTest extends InlineExpectationsTest { + NoSQLQueryTest() { this = "NoSQLQueryTest" } + + override string getARelevantTag() { result = "nosqlquery" } + + override predicate hasActualResult(string file, int line, string element, string tag, string value) { + exists(NoSQL::Query q | + q.hasLocationInfo(file, line, _, _, _) and + element = q.toString() and + value = q.toString() and + tag = "nosqlquery" + ) + } +} diff --git a/ql/test/library-tests/semmle/go/frameworks/NoSQL/main.go b/ql/test/library-tests/semmle/go/frameworks/NoSQL/main.go index a437eef781b..d4dcdddefee 100644 --- a/ql/test/library-tests/semmle/go/frameworks/NoSQL/main.go +++ b/ql/test/library-tests/semmle/go/frameworks/NoSQL/main.go @@ -21,32 +21,32 @@ func test(coll *mongo.Collection, filter interface{}, models []mongo.WriteModel, matchStage := bson.D{{"$match", filter}} pipeline := mongo.Pipeline{matchStage} - coll.Aggregate(ctx, pipeline, nil) + coll.Aggregate(ctx, pipeline, nil) // $nosqlquery=pipeline coll.BulkWrite(ctx, models, nil) coll.Clone(nil) - coll.CountDocuments(ctx, filter, nil) + coll.CountDocuments(ctx, filter, nil) // $nosqlquery=filter coll.Database() - coll.DeleteMany(ctx, filter, nil) - coll.DeleteOne(ctx, filter, nil) + coll.DeleteMany(ctx, filter, nil) // $nosqlquery=filter + coll.DeleteOne(ctx, filter, nil) // $nosqlquery=filter - coll.Distinct(ctx, fieldName, filter) + coll.Distinct(ctx, fieldName, filter) // $nosqlquery=filter coll.Drop(ctx) coll.EstimatedDocumentCount(ctx, nil) - coll.Find(ctx, filter, nil) - coll.FindOne(ctx, filter, nil) - coll.FindOneAndDelete(ctx, filter, nil) - coll.FindOneAndReplace(ctx, filter, nil) - coll.FindOneAndUpdate(ctx, filter, nil) + coll.Find(ctx, filter, nil) // $nosqlquery=filter + coll.FindOne(ctx, filter, nil) // $nosqlquery=filter + coll.FindOneAndDelete(ctx, filter, nil) // $nosqlquery=filter + coll.FindOneAndReplace(ctx, filter, nil) // $nosqlquery=filter + coll.FindOneAndUpdate(ctx, filter, nil) // $nosqlquery=filter coll.Indexes() coll.InsertMany(ctx, documents) coll.InsertOne(ctx, document, nil) coll.Name() replacement := bson.D{{"location", "NYC"}} - coll.ReplaceOne(ctx, filter, replacement) + coll.ReplaceOne(ctx, filter, replacement) // $nosqlquery=filter update := bson.D{{"$inc", bson.D{{"age", 1}}}} - coll.UpdateMany(ctx, filter, update) - coll.UpdateOne(ctx, filter, update) - coll.Watch(ctx, pipeline) + coll.UpdateMany(ctx, filter, update) // $nosqlquery=filter + coll.UpdateOne(ctx, filter, update) // $nosqlquery=filter + coll.Watch(ctx, pipeline) // $nosqlquery=pipeline } func main() {}