diff tests/automated/byte-compiler-tests.el @ 5370:4c4b96b13f70

Address the easy test failures in tests/automated. src/ChangeLog addition: 2011-03-11 Aidan Kehoe <kehoea@parhasard.net> * bytecode.c (optimize_byte_code): Only transform assignments to keywords to Bdiscard if NEED_TO_HANDLE_21_4_CODE is turned on. Cf. similar code in reject_constant_symbols(). tests/ChangeLog addition: 2011-03-11 Aidan Kehoe <kehoea@parhasard.net> * automated/byte-compiler-tests.el: (defconst :foo 1) now gives a warning when byte-compiled, check for that. (setq :foo 1) now errors with interpreted code, but succeeds with byte-compiled code; check for the former, wrap a Known-Bug-Expect-Failure around a check for the error in the latter case, we can't yet remove this behaviour while we're using packages compiled by 21.4. * automated/lisp-tests.el (wrong-type-argument): Integer zero is a valid argument to #'substring-no-properties, use Assert not Check-Error for it. Check some other aspects of the functionality of #'substring-no-properties in passing.
author Aidan Kehoe <kehoea@parhasard.net>
date Fri, 11 Mar 2011 20:40:01 +0000
parents 0f66906b6e37
children ac37a5f7e5be
line wrap: on
line diff
--- a/tests/automated/byte-compiler-tests.el	Thu Mar 10 19:14:25 2011 +0000
+++ b/tests/automated/byte-compiler-tests.el	Fri Mar 11 20:40:01 2011 +0000
@@ -45,7 +45,7 @@
 (check-byte-compiler-message "Attempt to set non-symbol" (setq 1 1))
 (check-byte-compiler-message "Attempt to set constant symbol" (setq t 1))
 (check-byte-compiler-message "Attempt to set constant symbol" (setq nil 1))
-(check-byte-compiler-message "^$" (defconst :foo 1))
+(check-byte-compiler-message "Attempt to set constant symbol" (defconst :foo 1))
 
 (check-byte-compiler-message "Attempt to let-bind non-symbol" (let ((1 'x)) 1))
 (check-byte-compiler-message "Attempt to let-bind constant symbol" (let ((t 'x)) (foo)))
@@ -60,12 +60,16 @@
 (check-byte-compiler-message "reference to free variable" (car free-variable))
 (check-byte-compiler-message "called with 2 args, but requires 1" (car 'x 'y))
 
-(check-byte-compiler-message "^$" (setq :foo 1))
 (let ((fun '(lambda () (setq :foo 1))))
   (fset 'test-byte-compiler-fun fun))
 (Check-Error setting-constant (test-byte-compiler-fun))
-(byte-compile 'test-byte-compiler-fun)
-(Check-Error setting-constant (test-byte-compiler-fun))
+(Check-Message "Attempt to set constant symbol"
+               (byte-compile 'test-byte-compiler-fun))
+
+;; Once NEED_TO_HANDLE_21_4_CODE is no longer defined in C, this will error
+;; correctly. It's disabled because the packages are compiled by 21.4.
+(Known-Bug-Expect-Failure
+ (Check-Error setting-constant (test-byte-compiler-fun)))
 
 (eval-when-compile (defvar setq-test-foo nil) (defvar setq-test-bar nil))
 (progn