From 92223dc60acc6531ac86bfcee1eebc38f8304841 Mon Sep 17 00:00:00 2001 From: Richard Hansen Date: Sun, 29 May 2022 17:15:04 -0400 Subject: [PATCH 1/7] ; bindat-tests (strz): Add more tests --- test/lisp/emacs-lisp/bindat-tests.el | 60 ++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/test/lisp/emacs-lisp/bindat-tests.el b/test/lisp/emacs-lisp/bindat-tests.el index 7722cf6c02..53c0c359d8 100644 --- a/test/lisp/emacs-lisp/bindat-tests.el +++ b/test/lisp/emacs-lisp/bindat-tests.el @@ -162,4 +162,64 @@ bindat-test--recursive (bindat-pack bindat-test--LEB128 n)) n))))))) +(let ((spec (bindat-type :pack-var v + (x strz 2 :pack-val v) + :unpack-val x))) + (ert-deftest bindat-test--strz-fixedlen-len () + (should (equal (bindat-length spec "") 2)) + (should (equal (bindat-length spec "a") 2))) + + (ert-deftest bindat-test--strz-fixedlen-len-overflow () + (should (equal (bindat-length spec "abc") 2))) + + (ert-deftest bindat-test--strz-fixedlen-pack () + (should (equal (bindat-pack spec "") "\0\0")) + (should (equal (bindat-pack spec "a") "\141\0"))) + + (ert-deftest bindat-test--strz-fixedlen-pack-overflow () + :expected-result :failed + (should (equal (bindat-pack spec "abc") "\141\0"))) + + (ert-deftest bindat-test--strz-fixedlen-unpack () + (should (equal (bindat-unpack spec "\0\0") "")) + (should (equal (bindat-unpack spec "a\0") "a")))) + +(let ((spec (bindat-type :pack-var v + (x strz :pack-val v) + :unpack-val x))) + (ert-deftest bindat-test--strz-varlen-len () + :expected-result :failed + (should (equal (bindat-length spec "") 1)) + (should (equal (bindat-length spec "abc") 4))) + + (ert-deftest bindat-test--strz-varlen-pack () + :expected-result :failed + (should (equal (bindat-pack spec "") "\0")) + (should (equal (bindat-pack spec "abc") "\141\142\143\0"))) + + (ert-deftest bindat-test--strz-varlen-unpack () + :expected-result :failed + (should (equal (bindat-unpack spec "\0") "")) + (should (equal (bindat-unpack spec "\141\142\143\0") "abc")))) + +(let ((spec '((x strz 2)))) + (ert-deftest bindat-test--strz-legacy-fixedlen-len () + (should (equal (bindat-length spec '((x . ""))) 2)) + (should (equal (bindat-length spec '((x . "a"))) 2))) + + (ert-deftest bindat-test--strz-legacy-fixedlen-len-overflow () + (should (equal (bindat-length spec '((x . "abc"))) 2))) + + (ert-deftest bindat-test--strz-legacy-fixedlen-pack () + (should (equal (bindat-pack spec '((x . ""))) "\0\0")) + (should (equal (bindat-pack spec '((x . "a"))) "\141\0"))) + + (ert-deftest bindat-test--strz-legacy-fixedlen-pack-overflow () + :expected-result :failed + (should (equal (bindat-pack spec '((x . "abc"))) "\141\0"))) + + (ert-deftest bindat-test--strz-legacy-fixedlen-unpack () + (should (equal (bindat-unpack spec "\0\0") '((x . "")))) + (should (equal (bindat-unpack spec "a\0") '((x . "a")))))) + ;;; bindat-tests.el ends here -- 2.36.1