Ok, I have written a couple of tests, two of which are currently failing
(mine are the ones with numbered suffixes 2 through 5). I am
attaching a patch that adds these tests. ERT output is below:
Thanks. Just a few questions, before installing the patch.
+(defun clear-advice (symbol)
+ "Reset SYMBOL's function to its original unadvised definition."
+ (let ((func (symbol-function symbol)))
+ (while (advice--p func)
+ (setq func (advice--cdr func)))
+ (fset symbol func)))
Why do you need that? AFAICT you only use it after defining sm-test7.2,
and I don't see why that call is needed.
+(defmacro post-restore-func (func &rest body)
+ (let ((fdef (symbol-function func)))
+ `(unwind-protect
+ (progn ,@body)
+ (fset ',func ,fdef))))
+(put 'post-restore-func 'lisp-indent-function
+ (get 'prog1 'lisp-indent-function))
Since it's only used once, I don't think it's worth defining a macro for it.