Ruby: update rack tests

This commit is contained in:
Alex Ford
2023-06-15 13:23:09 +01:00
parent e8079727ee
commit b8f537a437
3 changed files with 39 additions and 9 deletions

View File

@@ -1,10 +1,14 @@
rackApps
| rack.rb:1:1:10:3 | HelloWorld | rack.rb:2:12:2:14 | env |
| rack.rb:12:1:22:3 | Proxy | rack.rb:17:12:17:18 | the_env |
| rack.rb:24:1:37:3 | Logger | rack.rb:30:12:30:14 | env |
| rack.rb:39:1:45:3 | Redirector | rack.rb:40:12:40:14 | env |
| rack.rb:59:1:75:3 | Baz | rack.rb:60:12:60:14 | env |
| rack.rb:77:1:95:3 | Qux | rack.rb:79:17:79:19 | env |
| Rack application: -> { ... } | rack_apps.rb:21:17:21:19 | env |
| Rack application: Baz | rack.rb:60:12:60:14 | env |
| Rack application: ClassApp | rack_apps.rb:16:17:16:19 | env |
| Rack application: HelloWorld | rack.rb:2:12:2:14 | env |
| Rack application: InstanceApp | rack_apps.rb:6:12:6:14 | env |
| Rack application: Logger | rack.rb:30:12:30:14 | env |
| Rack application: Proxy | rack.rb:17:12:17:18 | the_env |
| Rack application: Qux | rack.rb:79:17:79:19 | env |
| Rack application: Redirector | rack.rb:40:12:40:14 | env |
| Rack application: { ... } | rack_apps.rb:23:24:23:26 | env |
rackResponseContentTypes
| rack.rb:8:5:8:38 | call to [] | rack.rb:7:34:7:45 | "text/plain" |
| rack.rb:20:5:20:27 | call to [] | rack.rb:19:28:19:38 | "text/html" |

View File

@@ -2,9 +2,7 @@ private import codeql.ruby.AST
private import codeql.ruby.frameworks.Rack
private import codeql.ruby.DataFlow
query predicate rackApps(Rack::App::AppCandidate c, DataFlow::ParameterNode env) {
env = c.getEnv()
}
query predicate rackApps(Rack::App::App app, DataFlow::ParameterNode env) { env = app.getEnv() }
query predicate rackResponseContentTypes(
Rack::Response::ResponseNode resp, DataFlow::Node contentType

View File

@@ -0,0 +1,28 @@
require 'rack'
require 'rack/handler/puma'
handler = Rack::Handler::Puma
class InstanceApp
def call(env)
status = 200
headers = {}
body = ["instance app"]
resp = [status, headers, body]
resp
end
end
class ClassApp
def self.call(env)
[200, {}, ["class app"]]
end
end
lambda_app = ->(env) { [200, {}, ["lambda app"]] }
proc_app = Proc.new { |env| [200, {}, ["proc app"]] }
handler.run InstanceApp.new
handler.run ClassApp
handler.run lambda_app
handler.run proc_app