Changeset 15066 for trunk/abcl/contrib/jss/t/jss-tests.lisp
- Timestamp:
- 06/09/17 19:26:28 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/contrib/jss/t/jss-tests.lisp
r15065 r15066 1 1 (in-package :cl-user) 2 2 3 (defpackage jss-test 4 (:use :cl :cl-user :jss :prove)) 3 (prove:plan 6) 5 4 6 (in-package :jss-test) 7 8 (plan 6) 9 10 (is (read-from-string "#\"{bar}.{foo}\"") '(get-java-field bar foo t)) 11 (is (read-from-string "#\"q.bar.{foo}\"") '(get-java-field (load-time-value (find-java-class "q.bar")) foo t)) 12 (is (read-from-string "#\"{bar}.foo\"") '(get-java-field bar "foo" t)) 13 (is-error (read-from-string "#\".bar.foo\"") 'simple-error) 5 (prove:is 6 (read-from-string "#\"{bar}.{foo}\"") 7 '(get-java-field bar foo t)) 8 (prove:is 9 (read-from-string "#\"q.bar.{foo}\"") 10 '(get-java-field (load-time-value (find-java-class "q.bar")) foo t)) 11 (prove:is 12 (read-from-string "#\"{bar}.foo\"") 13 '(get-java-field bar "foo" t)) 14 (prove:is-error 15 (read-from-string "#\".bar.foo\"") 16 'simple-error) 14 17 ;;; http://abcl.org/trac/ticket/205 15 (is (with-constant-signature ((substring "substring")) (substring "01234" 2)) "234") 18 (prove:is 19 (with-constant-signature ((substring "substring")) 20 (substring "01234" 2)) "234") 16 21 ;;; http://abcl.org/trac/ticket/229 - note: version of test for this ticket was broken in tests.lisp 17 ( is (#"toString" (find "size"18 (#"getMethods" (find-java-class "java.util.Collections$UnmodifiableMap"))19 22 (prove:is (#"toString" 23 (find "size" (#"getMethods" (find-java-class "java.util.Collections$UnmodifiableMap")) 24 :test 'string-equal :key #"getName")) 20 25 (#"toString" (java::jmethod "java.util.Collections$UnmodifiableMap" "size" ))) 21 26 22 27 ;; test that optimized jss is much faster than unoptimized 23 (defun optimized-jss (count) 24 (loop repeat count do (#"compile" 'regex.Pattern ".*"))) 28 (let () 29 (defun optimized-jss (count) 30 (loop repeat count do (#"compile" 'regex.Pattern ".*"))) 31 (let ((jss::*inhibit-jss-optimization* t)) 32 (defun unoptimized-jss (count) 33 (loop repeat count do (#"compile" 'regex.Pattern ".*")))) 34 (defun just-loop (count) 35 (loop repeat count)) 36 (let ((jss::*inhibit-jss-optimization* nil)) 37 (compile 'just-loop) 38 (compile 'optimized-jss)) 39 (let ((jss::*inhibit-jss-optimization* t)) 40 (compile 'unoptimized-jss)) 25 41 26 (let ((jss::*inhibit-jss-optimization* t)) 27 (defun unoptimized-jss (count) 28 (loop repeat count do (#"compile" 'regex.Pattern ".*")))) 42 (defmacro timeit (&body body) 43 `(let ((start (#"currentTimeMillis" 'system))) 44 ,@body 45 (- (#"currentTimeMillis" 'system) start))) 29 46 30 (defun just-loop (count) 31 (loop repeat count)) 32 33 (let ((jss::*inhibit-jss-optimization* nil)) 34 (compile 'just-loop) 35 (compile 'optimized-jss)) 36 (let ((jss::*inhibit-jss-optimization* t)) 37 (compile 'unoptimized-jss)) 38 39 (defmacro timeit (&body body) 40 `(let ((start (#"currentTimeMillis" 'system))) 41 ,@body 42 (- (#"currentTimeMillis" 'system) start))) 43 44 45 (plan 1) 46 (is-type (let ((just-loop (timeit (just-loop 10000)))) 47 (prove:plan 1) 48 (prove:is-type (let ((just-loop (timeit (just-loop 10000)))) 47 49 (+ 0.0 48 50 (/ (- (timeit (optimized-jss 10000)) just-loop) 49 51 (- (timeit (unoptimized-jss 10000)) just-loop)))) 50 '(float 0 0.1)) 52 '(float 0 0.1) 53 "Testing JSS compiler optimizationâŠ")) 51 54 52 (p lan 2)55 (prove:plan 2) 53 56 (let* ((jss::*inhibit-jss-optimization* nil) 54 (optimized-jss (macroexpand (precompiler::precompile-form '(#"compile" 'regex.Pattern ".*") t)))) 57 (optimized-jss 58 (macroexpand (precompiler::precompile-form 59 '(#"compile" 'regex.Pattern ".*") t)))) 55 60 (let* ((jss::*inhibit-jss-optimization* t) 56 (unoptimized-jss (macroexpand (precompiler::precompile-form '(#"compile" 'regex.Pattern ".*") t)))) 57 (is (car optimized-jss) 'java:jstatic) 58 (is (caar unoptimized-jss) 'lambda))) 61 (unoptimized-jss 62 (macroexpand (precompiler::precompile-form '(#"compile" 'regex.Pattern ".*") t)))) 63 (prove:is (car optimized-jss) 'java:jstatic) 64 (prove:is (caar unoptimized-jss) 'lambda))) 59 65 60 ( finalize)66 (prove:finalize) 61 67
Note: See TracChangeset
for help on using the changeset viewer.