(module test-servlet mzscheme
  
  (require (lib "contract.ss")
           (lib "pretty.ss")
           (lib "cut.ss" "srfi" "26")
           (lib "servlet.ss" "web-server")
           (only (lib "manager.ss" "web-server" "managers") manager?)
           (lib "lru.ss" "web-server" "managers"))
  
  (require (file "delirium.ss")
           (file "all-tests.ss")
           (file "test-base.ss"))
  
    
  (define interface-version 'v2)
  
    (define (start initial-request)
    (run-delirium initial-request all-tests))
    
    (define (instance-expiration-handler response)
    (fail "Expired instance!"))
  
        (define manager
    (let ([memory-threshold (* 32 1024 1024)])
      (create-LRU-manager
       instance-expiration-handler                           5                                                     (* 30 60)                                             (cut >= (current-memory-use) memory-threshold)        #:initial-count 12                                    #:inform-p      (lambda args                                            (void)))))
  
    
  (provide/contract
   [interface-version           symbol?]
   [start                       (-> request? response?)]
   [instance-expiration-handler (-> request? response?)]
   [manager                     manager?])
    
  )