From 249bef13d8058ff91cbb94e4b6559932ecebe519 Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Mon, 1 Mar 2021 23:46:00 -0800 Subject: 7840 --- baremetal/shell/print.mu | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/baremetal/shell/print.mu b/baremetal/shell/print.mu index 9c8c719b..32f5e725 100644 --- a/baremetal/shell/print.mu +++ b/baremetal/shell/print.mu @@ -219,3 +219,42 @@ fn test-print-cell-singleton-list { print-cell list, out, 0/no-trace check-stream-equal out, "(abc)", "F - test-print-cell-singleton-list" } + +fn test-print-cell-list { + # list = cons "abc", nil + var left-storage: (handle cell) + var left/ecx: (addr handle cell) <- address left-storage + new-symbol left, "abc" + var nil-storage: (handle cell) + var nil/edx: (addr handle cell) <- address nil-storage + allocate-pair nil + var list-storage: (handle cell) + var list/esi: (addr handle cell) <- address list-storage + new-pair list, *left, *nil + # list = cons 64, list + new-integer left, 0x40 + new-pair list, *left, *list + # + var out-storage: (stream byte 0x40) + var out/edi: (addr stream byte) <- address out-storage + print-cell list, out, 0/no-trace + check-stream-equal out, "(64 abc)", "F - test-print-cell-list" +} + +fn test-print-dotted-list { + # list = cons 64, "abc" + var left-storage: (handle cell) + var left/ecx: (addr handle cell) <- address left-storage + new-symbol left, "abc" + var right-storage: (handle cell) + var right/edx: (addr handle cell) <- address right-storage + new-integer right, 0x40 + var list-storage: (handle cell) + var list/esi: (addr handle cell) <- address list-storage + new-pair list, *left, *right + # + var out-storage: (stream byte 0x40) + var out/edi: (addr stream byte) <- address out-storage + print-cell list, out, 0/no-trace + check-stream-equal out, "(abc . 64)", "F - test-print-dotted-list" +} -- cgit 1.4.1-2-gfad0