{$CLEO .s} {$INCLUDE_ONCE ../cleo_tester.inc} script_name '0AD3' test("0AD3 (string_format)", tests) terminate_this_custom_script function tests it("should format string", test1) it("should respect short string variable size", test2) it("should respect long string variable size", test3) it("should create long text", test4) return function test1 string_format {buffer} 0@v {format} "" {args} assert_eqs(0@v, "") string_format {buffer} 0@v {format} "test" {args} assert_eqs(0@v, "test") string_format {buffer} 0@v {format} "char %c" {args} 0x41 assert_eqs(0@v, "char A") string_format {buffer} 0@v {format} "int %d" {args} 3 assert_eqs(0@v, "int 3") string_format {buffer} 0@v {format} "hex %x" {args} 0x123 assert_eqs(0@v, "hex 123") string_format {buffer} 0@v {format} "num %0.1f" {args} 1.234 assert_eqs(0@v, "num 1.2") string_format {buffer} 0@v {format} "str %s" {args} "text" assert_eqs(0@v, "str text") end function test2 0@ = 0xAAAAAAAA 1@ = 0xBBBBBBBB 2@ = 0xCCCCCCCC string_format {buffer} 0@s {format} "some longer test text" {args} assert_eqs(0@s, "some lon") // clamped to size assert_eq(2@, 0xCCCCCCCC) end function test3 0@ = 0xAAAAAAAA 1@ = 0xBBBBBBBB 2@ = 0xCCCCCCCC 3@ = 0xDDDDDDDD 4@ = 0xEEEEEEEE string_format {buffer} 0@v {format} "some longer test text" {args} assert_eqs(0@v, "some longer test") // clamped to size assert_eq(4@, 0xEEEEEEEE) end function test4 0@ = allocate_memory {size} 64 string_format {buffer} 0@ {format} "some longer test text" {args} assert_eqs(0@, "some longer test text") // not clamped free_memory 0@ end end