1.1--- a/lisp/std/tests.lisp Sun Jul 14 22:34:13 2024 -0400
1.2+++ b/lisp/std/tests.lisp Mon Jul 15 15:18:03 2024 -0400
1.3@@ -251,16 +251,26 @@
1.4 x) ;; 2
1.5 '(42 42 2)))))
1.6
1.7-(deftest bits (:skip t)
1.8- (define-bitfield testbits
1.9- (a boolean)
1.10- (b (signed-byte 2))
1.11- (c (unsigned-byte 3) :initform 1)
1.12- (d (integer -100 100))
1.13- (e (member foo bar baz)))
1.14+(define-bitfield testbits
1.15+ (a boolean)
1.16+ (b (signed-byte 2))
1.17+ (c (unsigned-byte 3) :initform 1)
1.18+ (d (integer -100 100))
1.19+ (e (member foo bar baz)))
1.20+
1.21+(deftest bits ()
1.22 (let ((bits (make-testbits)))
1.23 (is (not (testbits-a bits)))
1.24 (is (= 0 (testbits-b bits)))
1.25 (is (= 1 (testbits-c bits)))
1.26 (is (= -100 (testbits-d bits)))
1.27 (is (eql 'foo (testbits-e bits)))))
1.28+
1.29+(deftest leb128 ()
1.30+ (loop for i from 0 below 1000
1.31+ do (is (= i (decode-uleb128 (encode-uleb128 i)))))
1.32+ (signals division-by-zero (decode-uleb128 (encode-uleb128 -1)))
1.33+ (loop for i from -1000 below 0
1.34+ do (is (= i (decode-leb128 (encode-leb128 i))))
1.35+ do (is (= (* i i) (decode-leb128 (encode-leb128 (* i i)))))))
1.36+