add memory use and random roundtrip tests for net/uri-codec
This commit is contained in:
parent
4418442d33
commit
dfac49e597
|
@ -13,5 +13,6 @@
|
||||||
"net-lib"
|
"net-lib"
|
||||||
"racket-test"
|
"racket-test"
|
||||||
"rackunit-lib"
|
"rackunit-lib"
|
||||||
|
"sandbox-lib"
|
||||||
"web-server-lib"))
|
"web-server-lib"))
|
||||||
(define update-implies '("net-lib"))
|
(define update-implies '("net-lib"))
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#lang racket
|
#lang racket
|
||||||
(require net/uri-codec tests/eli-tester)
|
(require net/uri-codec tests/eli-tester racket/sandbox)
|
||||||
|
|
||||||
(provide tests)
|
(provide tests)
|
||||||
(module+ main (tests))
|
(module+ main (tests))
|
||||||
|
@ -97,6 +97,9 @@
|
||||||
(uri-path-segment-unreserved-decode "M~(@%3B%20") => "M~(@; "
|
(uri-path-segment-unreserved-decode "M~(@%3B%20") => "M~(@; "
|
||||||
(uri-encode "æçè") => "%C3%A6%C3%A7%C3%A8"
|
(uri-encode "æçè") => "%C3%A6%C3%A7%C3%A8"
|
||||||
(uri-encode "Kidô senkan Nadeshiko") => "Kid%C3%B4%20senkan%20Nadeshiko"
|
(uri-encode "Kidô senkan Nadeshiko") => "Kid%C3%B4%20senkan%20Nadeshiko"
|
||||||
|
|
||||||
|
do (memory-tests)
|
||||||
|
do (random-tests)
|
||||||
))
|
))
|
||||||
|
|
||||||
;; tests adapted from Noel Welsh's original test suite
|
;; tests adapted from Noel Welsh's original test suite
|
||||||
|
@ -158,4 +161,29 @@
|
||||||
|
|
||||||
))
|
))
|
||||||
|
|
||||||
|
(define (memory-tests)
|
||||||
|
;; Test that encode/decode don't take excessive memory
|
||||||
|
(define STRING-SIZE #e1e6)
|
||||||
|
(define MB-LIMIT 10)
|
||||||
|
(define big-string
|
||||||
|
(build-string
|
||||||
|
STRING-SIZE
|
||||||
|
(lambda (i) (integer->char (+ (char->integer #\a) (random 26))))))
|
||||||
|
(define (roundtrip s)
|
||||||
|
(define encoded (form-urlencoded-encode s))
|
||||||
|
(form-urlencoded-decode encoded))
|
||||||
|
(test (call-with-limits 10 MB-LIMIT
|
||||||
|
(lambda () (roundtrip big-string)))
|
||||||
|
=> big-string))
|
||||||
|
|
||||||
|
(define (random-tests)
|
||||||
|
(define (random-string length)
|
||||||
|
(build-string length (lambda (i) (integer->char (add1 (random 255))))))
|
||||||
|
(define (roundtrip s)
|
||||||
|
(define encoded (form-urlencoded-encode s))
|
||||||
|
(form-urlencoded-decode encoded))
|
||||||
|
(for ([i 1000])
|
||||||
|
(define s (random-string #e1e3))
|
||||||
|
(test (roundtrip s) => s)))
|
||||||
|
|
||||||
(module+ test (require (submod ".." main))) ; for raco test & drdr
|
(module+ test (require (submod ".." main))) ; for raco test & drdr
|
||||||
|
|
Loading…
Reference in New Issue
Block a user